私も勘違いしていたので | python3Xのブログ

python3Xのブログ

ここでは40代、50代の方が日々の生活で役に立つ情報や私の趣味であるプログラム、Excelや科学に関する内容で投稿する予定です。

Numpy配列の操作で勘違いしていたので(私の勉強不足ですが)

紹介いたします。

 

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

[[ 0  1  2]     # (0, 0)
 [ 3  4  5]     # (1, 2)
 [ 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]
 
A[np.arange(4), b] += 10 # 上に表示した頭の部分に10を加えその後残り2つを表示、繰り返し
print(A)
[[10  1  2]
 [ 3  4
15]
 [
16  7  8]
 [ 9
20 11]]