鱼C论坛

 找回密码
 立即注册
查看: 1499|回复: 2

[已解决]numpy初级问题:

[复制链接]
发表于 2020-3-15 00:46:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
a = np.arange(1,21).reshape(4,5)
a.prod()
结果为什么是:  -2102132736   ?
.prod()不是求积么?
最佳答案
2020-3-15 14:44:00
prod()是求积,此时的a.prod()的数据类型是int32  显示数值区间为   -2147483648 ~ 2147483647
而20的阶乘为2432902008176640000,不在这个区间内,所以显示有误,附上如下代码,希望对你有帮助
# -*- coding: utf-8 -*-
"""
@author: yunfu
"""
import numpy as np
from functools import reduce
a = np.arange(1,21,dtype='int64').reshape(5,4)
print(a.prod())

#阶乘
n=20 
print(reduce(lambda x,y:x*y,range(1,n+1)))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-15 00:59:43 | 显示全部楼层
我的结果是错误代码,np是未命名
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-15 14:44:00 | 显示全部楼层    本楼为最佳答案   
prod()是求积,此时的a.prod()的数据类型是int32  显示数值区间为   -2147483648 ~ 2147483647
而20的阶乘为2432902008176640000,不在这个区间内,所以显示有误,附上如下代码,希望对你有帮助
# -*- coding: utf-8 -*-
"""
@author: yunfu
"""
import numpy as np
from functools import reduce
a = np.arange(1,21,dtype='int64').reshape(5,4)
print(a.prod())

#阶乘
n=20 
print(reduce(lambda x,y:x*y,range(1,n+1)))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 20:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表