単語帳.毎回検索するのが面倒なので転載多め.元URLあり.
方法1: take(indices, axis=)
メソッド
indices
は配列でもOK.
しかしaxis
にタプルを入れて複数の次元を指定することは不可.
nx, ny, nz = 2, 3, 4
arr = np.arange(nx * ny * nz).reshape(nx, ny, nz)
arr.take(0, axis=0) # arr[0]と同じ
arr.take(1, axis=1) # arr[:,1]と同じ
[Numpy: numpy.take]
(https://docs.scipy.org/doc/numpy/reference/generated/numpy.take.html)
方法2: sline(None)を組み合わせる
slice(None)
,またはslice(None, None, None)
はインデックスでいう:
と同じ.
# 以下はarr[:,0,2]と同じ
I = [slice(None)] * arr.ndim # [:,:,:]と同じ
I[1] = 0
I[2] = 2
arr[tuple(I)]
[stackoverflow: Dynamic axis indexing of Numpy ndarray]
(https://stackoverflow.com/questions/31094641/dynamic-axis-indexing-of-numpy-ndarray)