我将 numpy 数组的元素分配为等于“小”值的 python 浮点类型数字的减法。当我这样做并尝试通过打印到命令行来验证结果时,数组被报告为全零。这是我的代码:
import numpy as np
np.set_printoptions(precision=20)
pc1x = float(-0.438765)
pc2x = float(-0.394747)
v1 = np.array([0,0,0])
v1[0] = pc1x-pc2x
print pc1x
print pc2x
print v1
输出如下所示:
-0.438765
-0.394747
[0 0 0]
我预计 v1 会是这样:
[-0.044018 0 0]
我是 numpy 的新手,我承认,这可能是对 numpy 和 float 工作原理的明显误解。我认为更改 numpy 打印选项可以解决问题,但没有运气。任何帮助都很棒!谢谢!
您正在声明数组v1 = np.array([0,0,0])
,numpy 假设您需要一个 int 数组。对其进行的任何后续操作都将维持此 int 数组状态,因此在明智地添加小数字元素后,它会强制转换回 int (导致全零)。声明它与
v1 = np.array([0,0,0],dtype=float)
numpy 有大量特定于 numpy 的/特定于平台的数据类型,详细信息请参见dtype 文档页面。 http://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)