Numpy配列の操作で勘違いしていたので(私の勉強不足ですが)
紹介いたします。
A = np.arange(0,12).reshape(4,3)
print(A)
[[ 0 1 2] # (0, 0)
print(A)
[[ 0 1 2] # (0, 0)
[ 3 4 5] # (1, 2)
[ 6 7 8] # (2, 0)
[ 9 10 11]] # (3, 1)
[ 6 7 8] # (2, 0)
[ 9 10 11]] # (3, 1)
b = np.array([0, 2, 0, 1]) # (0, 0),(1, 2),(2, 0),(3, 1)の操作
print(A[np.arange(4), b]) # 各行からbのインデックスに従って抽出
[ 0 5 6 10]
print(A[np.arange(4), b]) # 各行からbのインデックスに従って抽出
[ 0 5 6 10]
A[np.arange(4), b] += 10 # 上に表示した頭の部分に10を加えその後残り2つを表示、繰り返し
print(A)
print(A)
[[10 1 2]
[ 3 4 15]
[16 7 8]
[ 9 20 11]]
[ 3 4 15]
[16 7 8]
[ 9 20 11]]