NumPyで3d配列を扱っています。配列要素を多く見なければなりません。私が配列a
を持っていると言うと、a.shape
は(10,5,3)
です。私はこれを形状の(10,5)
の3面の感覚で使用しています。私はそのように見たいと思います。例えばNumPy配列を印刷するときの軸の順序
私は軸2を反復処理し、このように印刷する場合、私はそれをしたいように、それが表示されているのに対しI
print(a)
は私が
[[[ 0 0 0]
[ 0 0 0]
[ 0 0 0]
[ 0 0 0]
[ 0 0 0]]
[[ 0 0 0]
[ 0 22 0]
[11 22 33]
[ 0 0 0]
[ 0 0 0]]
[[ 0 0 0]
[11 22 33]
[ 0 0 0]
[11 22 33]
[ 0 0 0]]
[[ 0 0 0]
[11 22 33]
[ 0 0 0]
[11 22 0]
[ 0 0 0]]
[[ 0 0 0]
[11 22 33]
[11 0 0]
[11 22 0]
[ 0 0 0]]
[[ 0 0 0]
[11 22 33]
[ 0 22 0]
[11 0 0]
[ 0 0 0]]
[[ 0 0 0]
[11 22 33]
[ 0 0 0]
[11 22 0]
[ 0 0 0]]
[[ 0 0 0]
[11 22 33]
[ 0 0 0]
[11 22 33]
[ 0 0 0]]
[[ 0 0 0]
[11 22 0]
[ 0 22 33]
[11 22 0]
[ 0 0 0]]
[[ 0 0 0]
[ 0 0 0]
[ 0 0 0]
[ 0 0 0]
[ 0 0 0]]]
を取得する場合:
>>> for i in range(a.shape[2]):
... print(str(a[:,:,i]) + "\n")
...
[[ 0 0 0 0 0]
[ 0 0 11 0 0]
[ 0 11 0 11 0]
[ 0 11 0 11 0]
[ 0 11 11 11 0]
[ 0 11 0 11 0]
[ 0 11 0 11 0]
[ 0 11 0 11 0]
[ 0 11 0 11 0]
[ 0 0 0 0 0]]
[[ 0 0 0 0 0]
[ 0 22 22 0 0]
[ 0 22 0 22 0]
[ 0 22 0 22 0]
[ 0 22 0 22 0]
[ 0 22 22 0 0]
[ 0 22 0 22 0]
[ 0 22 0 22 0]
[ 0 22 22 22 0]
[ 0 0 0 0 0]]
[[ 0 0 0 0 0]
[ 0 0 33 0 0]
[ 0 33 0 33 0]
[ 0 33 0 0 0]
[ 0 33 0 0 0]
[ 0 33 0 0 0]
[ 0 33 0 0 0]
[ 0 33 0 33 0]
[ 0 0 33 0 0]
[ 0 0 0 0 0]]
これは私の心の中でもっと意味があります。
軸がどのように視覚化されるべきか私の直感のように思えますが、私の配列a
は形状(3,5,10)でなければなりません。しかし、私はプロジェクト全体を特定のフォーマットの配列に回しているため、現時点では実際に変更することはできません。私は、軸の順序は任意であると考えています。そのため、私はこのように制限されています。 Axesを逆順に、または任意の順序で印刷するためにNumPyを使うことができます。私はnumpy.set_printoptions
のドキュメントをチェックして、何も見つからなかった。私は印刷は簡単だと思いますが、私は自分のデータをよく見なければならないすべてのスライシングを取りたいと思います。あるいは、誰かがなぜそれが完全に恣意的ではないのかを説明することができます。多分、配列の軸について別のやり方で考えるべきかもしれません。
あなたがC対(グーグル)FORTRAN上に読んでください順序付けられた配列。配列がメモリ内でどのように機能するかをよりよく理解することができます。これにより、配列の取り扱い方法を理解するのに役立ちます。 Numpyは両方の注文をサポートしていますが、Cスタイルの注文のデフォルトをサポートしています。 – Aaron
@Aaron残念なことに、fortranとcの順序付けはメモリ内のレイアウト(連続する行または連続する列)を参照しますが、印刷時の表現は参照しません。 'np.asfortranarray'は内部メモリのレイアウトが異なっていても同じreprを与えます。 –
@BradSolomon私はインメモリ表現を意図的に参照していました。それは直接質問に答えることはできませんでしたが、私は知識が有用であると信じています。内部表現についてもっと知ることは、私が望む表現を得るために、より複雑なスライスやデータの並べ替えを行う方法を理解する上で大いに助けになりました。 – Aaron