【发布时间】:2019-01-08 09:45:44
【问题描述】:
我正在使用 Python 3.7 和 numpy 1.15.2,并且在元素乘法中遇到了我不理解的行为。以下对我来说很直观:
import numpy as np
a = np.array([[30000,4000]])
b = np.array([[70000,8000]])
np.multiply(a,b)
给予
array([[2100000000,32000000]])
但是,当我这样做时
a = np.array([[30000,40000]])
b = np.array([[70000,80000]])
np.multiply(a,b)
我明白了
array([[ 2100000000, -1094967296]])
我猜结果应该是array([[ 30000*70000, 40000*80000]])。负数从何而来?我应该怎么做才能得到预期的数组?
【问题讨论】:
-
这不是“不直观的”,这就是数字在计算机上的表示方式。这个wikipedia article on data types 可能会有所帮助。
标签: python numpy elementwise-operations