复制带浮点数的numpy数组的值

2024-04-20 09:54:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下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]])

正如你所看到的,好像浮标是圆形的。我希望浮点数保持原样而不舍入,我如何修复它


Tags: 方法innumpynp圆形outarray浮点数
1条回答
网友
1楼 · 发布于 2024-04-20 09:54:15

x的数据类型为int,因为它具有所有整数值

因此,只需在创建x时更改数据类型,如下所示:

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]]

相关问题 更多 >