首页 > 解决方案 > 使用浮点数复制 numpy 数组的值

问题描述

我有以下 numpy 数组:

X = np.array([[1,2,3], [4,5,6], [7,8,9]])
y = np.array([[0.1,0.2,0.3], [0.4,0.5,0.743], [0.834,0.96,0.1]])

我试图y使用以下方法将一些列复制到 X 中:

X[:, [0,1]] = y[:, [0,1]]

但是,在我打印后,X我得到:

In[20]: X
Out[20]: 
array([[0, 0, 3],
       [0, 0, 6],
       [0, 0, 9]])

如您所见,就好像浮动是圆形的。我想要花车不四舍五入,我该如何解决?

标签: pythonnumpyscikit-learn

解决方案


x 的 dtype 是int因为它具有所有整数值,

所以只需在创建 x 时更改 dtype,如下所示:

x = np.array([[1,2,3], [4,5,6], [7,8,9]], dtype=float)
y = np.array([[0.1,0.2,0.3], [0.4,0.5,0.743], [0.834,0.96,0.1]])

x[:, [0,1]] = y[:, [0,1]]

print(x)

输出:

[[0.1   0.2   3.   ]
 [0.4   0.5   6.   ]
 [0.834 0.96  9.   ]]

编辑

或者,如果您不x手动创建,那么正如@Arda Keskiner 在评论中建议的那样使用:

x = x.astype(float)
x[:, [0,1]] = y[:, [0,1]]

推荐阅读