Skip to main content
 首页 » 编程设计

python之numpy,用数组替换列

2025年05月04日23jackei

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

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

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

谢谢

J

请您参考如下方法:

如果您像使用 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]])