小能豆

为 numpy.array 赋值

py

假设我们创建这个 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]])

但这不起作用。正确的方法是什么?


阅读 19

收藏
2024-12-13

共1个答案

小能豆

您可以使用它们np.ix_来获取那些开放的网格,当它们用于索引到数组中时broadcasted,就可以用于为其分配值,就像这样 -

A[np.ix_([0,2],[1,3])] = 9999
2024-12-13