首页 > 解决方案 > numpy,用数组替换列

问题描述

我正在尝试用具有相同长度的新数组替换一列或多列。

a = np.array([[1,2,3],[1,2,3],[1,2,3]])
b = np.array([[0,0,0])
a[:, 0] = b

我有一个错误ValueError: could not broadcast input array from shape (3,1) into shape (3)。但是,当 b 有多个列时,这有效。

a = np.array([[1,2,3],[1,2,3],[1,2,3]])
b = np.array([[0,7],[0,7],[0,7]])
a[:, 0:2] = b

array([[0, 7, 3],
       [0, 7, 3],
       [0, 7, 3]])

如何有效地用另一个数组替换一列?

谢谢

Ĵ

标签: pythonnumpy

解决方案


如果您像使用a[:, 0:2] = b. [:, 0:1]实际上只是第一列

a = np.array([[1,2,3],[1,2,3],[1,2,3]])
b = np.array([[0],[0],[0]])
a[:, 0:1] = b

# array([[0, 2, 3],
#        [0, 2, 3],
#        [0, 2, 3]])

推荐阅读