numpy 回合在数组中浮动到 ints,但我不希望这样



我有以下代码

import numpy as np
arr=np.array([[3,2,1],[4,3,1],[3,1,0]])
x=np.array([16,21.7,12.1])
for i in range(len(arr)):
temp=np.copy(arr)
temp[:,i]=x

当我执行这个而不是生成temp=[[3,2,16],[4,3,21.7],[3,1,12.1]]时,它生成[[3,2,16],[4,3,21],[3,1,12]]。它是圆的,但我不想那样。我使用了.astype()float()等,但没有工作。

dtype=float添加到arr

arr = np.array([[3, 2, 1], [4, 3, 1], [3, 1, 0]], dtype=float)
...
print(temp)
# [[ 3.   2.  16. ]
#  [ 4.   3.  21.7]
#  [ 3.   1.  12.1]]

将数组声明为浮点型

arr=np.array([[3,2,1],[4,3,1],[3,1,0]]).astype(np.float32)

或者在复制时进行转换

temp=np.copy(arr).astype(np.float32)

相关内容

最新更新