2017-04-05 61 views
0

讓我們說,我們創建這個np.array:分配值numpy.array

A = np.arange(12).reshape(3, 4) 

所以,A是:

array([[ 0, 1, 2, 3], 
     [ 4, 5, 6, 7], 
     [ 8, 9, 10, 11]]) 

我想一些值分配給這樣的:

A[[0,2]][:,[1,3]] = 9999 

爲了獲得:

array([[ 0, 9999, 2, 9999], 
     [ 4, 5, 6, 7], 
     [ 8, 9999, 10, 9999]]) 

但這不起作用。什麼是正確的方法來做到這一點?

感謝

回答

1

您可以使用np.ix_得到那些開放的網格,它使用時索引到數組會broadcasted,因此可用於分配值到它,就像這樣 -

A[np.ix_([0,2],[1,3])] = 9999