前提・実現したいこと
多次元配列から、複数の要素を取得したい。
二次元配列の例:
Python
1import numpy as np 2 3a = np.arange(12).reshape(3, 4) 4b = np.array([[1, 0], [2, 1], [3, 2]]) 5 6#aから、bの複数の座標の要素を取得 7 8result = [1, 6, 11] #求めている結果
発生している問題・エラーメッセージ
上記の「#aから、bの複数の座標の要素を取得」の操作方法
下記の試したことでもできなくはないが、他の多次元配列への汎用性がなく、
二次元配列上での要素範囲を超えても、エラーにならない場合がある。
正攻法があるのであればご教授願いたい。
試したこと
一次元配列の場合は、a[b]の操作でできるので、
Python
1import numpy as np 2 3#一次元配列の場合 4a = np.arange(12) 5b = np.array([5,1,2,4]) 6a[b] #>>>[5,1,2,4] 7 8#一次元配列で可能なことを活用した二次元配列の複数の要素の取得 9c = np.arange(12).reshape(3, 4) 10d = np.array([[1, 0], [2, 1], [3, 2]]) 11c.flatten()[d@[1, c.shape[1]]] #>>>[1, 6, 11]
補足情報(FW/ツールのバージョンなど)
Python 3.9.2
Numpy 1.20.2
Windows 10
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/22 07:33
2021/05/22 08:47 編集
2021/05/22 09:03