我有一个数据集,想要应用一些算术方法。问题是,当我用numpy计算时,相对较大的数字会被存储为0。
奇怪的是,当我单独计算这些数字时,它们有一个整数值,只有当我使用numpy计算时它们才变成0。
x = np.array([18,30,31,31,15])
10*150**x[0]/x[0]
Out[1]:36298069767006890
vector = 10*150**x/x
vector
Out[2]: array([0, 0, 0, 0, 0])
我当然已经检查过它们的类型:
type(10*150**x[0]/x[0]) == type(vector[0])
Out[3]:True
如何在numpy中计算这些大数字而不看到它们变成零?
请注意,如果我们移除开头的10这个因子,问题会略有改变(但我认为原因可能是相似的):
x = np.array([18,30,31,31,15])
150**x[0]/x[0]
Out[4]:311075541538526549
vector = 150**x/x
vector
Out[5]: array([-329406144173384851, -230584300921369396, 224960293581823801,
-224960293581823801, -368934881474191033])
负数表示Python中int64类型的最大数值已经被超过了,不是吗?
np.array([18.0, 30, 31, 31, 15])
代替整数? - kennytm