首页 > 解决方案 > 如何将 NumPy 数组广播到另一个 NumPy 数组的一部分?

问题描述

我有这些数组。

 a = np.array([[1,2,3],[3,4,5],[4,5,6]])
 b = np.array([-1, -2, -3])

a我想用b像这样的元素来改变一些元素:

a = [[1, -1, -1],
     [3, -2, -2],
     [4, -3, -3]]

我试过了:a[:,1:]=b但有一个例外:

ValueError: could not broadcast input array from shape (3) into shape (3,2)

b广播的正确方法是什么a

标签: pythonnumpy

解决方案


您试图将b其视为一列,但广播规则将尝试复制ba[:, 1:]. 那是行不通的。

相反,转置a并复制b到转置的行中:

a.T[1:] = b

推荐阅读