NumPy配列の次元の入れ替え 質問する

NumPy配列の次元の入れ替え 質問する

次のことをやりたいです:

for i in dimension1:
  for j in dimension2:
    for k in dimension3:
      for l in dimension4:
        B[k,l,i,j] = A[i,j,k,l]

ループを使用せずに、最終的に A と B の両方に同じ情報が含まれますが、インデックスが異なります。

次元 1、2、3、4 は同じでも異なっていても構わないことを指摘する必要があります。そのため、numpy.reshape() は難しいようです。

ベストアンサー1

numpyでこれを行う標準的な方法は、np.transposeのオプションの順列引数。あなたの場合、 から に行くにはijklklij順列は です(2, 3, 0, 1)。例:

In [16]: a = np.empty((2, 3, 4, 5))

In [17]: b = np.transpose(a, (2, 3, 0, 1))

In [18]: b.shape
Out[18]: (4, 5, 2, 3)

おすすめ記事