私は3dインスタンスのデータセットを表す4dのnumpy配列を持っています。 配列の形が(32, 32, 3, 73257)
であると言います。4dのnumpy配列の並べ替え
アレイの形状を(73257, 32, 32, 3)
に変更するにはどうすればよいですか?
---質問の更新 ロールアクシスとトランスポーズの両方がこのトリックを行うようです。
返信ありがとうございました!
私は3dインスタンスのデータセットを表す4dのnumpy配列を持っています。 配列の形が(32, 32, 3, 73257)
であると言います。4dのnumpy配列の並べ替え
アレイの形状を(73257, 32, 32, 3)
に変更するにはどうすればよいですか?
---質問の更新 ロールアクシスとトランスポーズの両方がこのトリックを行うようです。
返信ありがとうございました!
ためarr[i,j,k,l] == arr2[l,i,j,k]
を行いますnp.transpose
機能が正確に何をしたい、あなたが交換したい、軸かを制御軸の引数を渡すことができない:
a = np.empty((32, 32, 3, 73257))
b = np.transpose(a, (3, 0, 1, 2))
bの軸はaの置換されたバージョンです:bの軸0はaの3番目の軸、bの軸1はaの0番目の軸などです。
そのように、あなたは第二または第三位にするサイズ32の軸を指定することができる:
b = np.transpose(a, (3, 1, 0, 2))
はまた、所望の形状のアレイを与えるが、以前のものと異なっています。
np.rollaxis(arr, axis=-1)
のように見えます。例:
>>> arr = np.empty(32, 32, 3, 73257)
>>> arr2 = np.rollaxis(arr, axis=-1)
>>> arr2.shape
(73257, 32, 32, 3)
これは、すべてのijkl
関連 - http://stackoverflow.com/questions/41022182/change-shape-of-nparray – Divakar
'(3、0、1、2)'を使用した場合、 'transpose'もここでも動作します – Eric
あなたは正しいです。私はできるだけ早く返信を修正します。 – Panos