在下面的代码中,我正在读取CSV文件,并将值转换为NumPy数组。然后,我希望将数组“点”的一行的所有偶数值除以一个值,将其他奇数值除以另一值。但是,当进行除法运算时,即使期望使用浮点数,结果值也是整数。
Python版本:
3.6.6 |Anaconda, Inc.| (default, Oct 9 2018, 12:34:16)
[GCC 7.3.0]
提前感谢
a = np.array([[ 2, 11, 27, 37, 52, 81],
[45, 83, 6, 94, 94, 1],
[49, 45, 44, 41, 16, 67]])
c = a.astype(float)
for i in range(10):
c[i][::2] = a[i][::2] / 100.0
c[i][1::2] = a[i][1::2] / 200.0
array([[0.02 , 0.055, 0.27 , 0.185, 0.52 , 0.405],
[0.45 , 0.415, 0.06 , 0.47 , 0.94 , 0.005],
[0.49 , 0.225, 0.44 , 0.205, 0.16 , 0.335]])
如果不使用c = a.astype(float)
,则输出整数。
问题出在数组的dtype。 dtype应该转换为float以存储float值。
这里是一个简单的版本
a = np.array([[ 2, 11, 27, 37, 52, 81],
[45, 83, 6, 94, 94, 1],
[49, 45, 44, 41, 16, 67]])
c = a.astype(float)
for i in range(10):
c[i][::2] = a[i][::2] / 100.0
c[i][1::2] = a[i][1::2] / 200.0
array([[0.02 , 0.055, 0.27 , 0.185, 0.52 , 0.405],
[0.45 , 0.415, 0.06 , 0.47 , 0.94 , 0.005],
[0.49 , 0.225, 0.44 , 0.205, 0.16 , 0.335]])