假设我们创建这个 np.array:
A = np.arange(12).reshape(3, 4)
因此,A 是:
array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])
我想像这样为 A 分配一些值:
A[[0,2]][:,[1,3]] = 9999
为了获得:
array([[ 0, 9999, 2, 9999], [ 4, 5, 6, 7], [ 8, 9999, 10, 9999]])
但这不起作用。正确的方法是什么?
您可以使用它们np.ix_来获取那些开放的网格,当它们用于索引到数组中时broadcasted,就可以用于为其分配值,就像这样 -
np.ix_
broadcasted
A[np.ix_([0,2],[1,3])] = 9999