Numpy数组除以整数结果的整数结果

问题描述 投票:-1回答:1

在下面的代码中,我正在读取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),则输出整数。

python numpy numpy-ndarray integer-division
1个回答
-1
投票

问题出在数组的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]])
© www.soinside.com 2019 - 2024. All rights reserved.