假设我们创建了这个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]])
但这不起作用。这样做的正确方法是什么?
由于
答案 0 :(得分:1)
你可以使用np.ix_
来获取那些用于索引数组的开放网格,它们可以broadcasted
,因此可以用来为它分配值,就像这样 -
A[np.ix_([0,2],[1,3])] = 9999