これはのリシェイプの使用に関するもので、多次元スケールでこの軸がどのように使用されているかを示しています。numpy任意の軸を介して多次元配列を再整形
最初のインデックスでインデックスされた行列を含む次の配列があるとします。 私が達成したいのは、代わりに最初のインデックスで各マトリックスの列を索引付けすることです。この問題を説明するために、次の例を考えてみましょう。ここでは、最初のインデックスを持つ行列をインデックスするnumpy配列がzです。 zは次のようになります
x = np.arange(9).reshape((3, 3))
y = np.arange(9, 18).reshape((3, 3))
z = np.dstack((x, y)).T
:
array([[[ 0, 3, 6],
[ 1, 4, 7],
[ 2, 5, 8]],
[[ 9, 12, 15],
[10, 13, 16],
[11, 14, 17]]])
、その形状は(2, 3, 3)
です。ここで、第1のインデックスは2つの画像であり、3つのx 3はマトリックスである。
(6, 3)
ある
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]])
:
より具体的には、その後言い回し質問は、以下所望の出力を得るために変形を使用する方法です。これは、配列の次元が上記のように行列xとyの列を指数化することを達成する。私の自然傾きは、次のようにZに直接再構築を使用することでした:
out = z.reshape(2 * 3, 3)
しかし、その出力は、インデックス行列の行と列ではない以下の通りである:
array([[ 0, 3, 6],
[ 1, 4, 7],
[ 2, 5, 8],
[ 9, 12, 15],
[10, 13, 16],
[11, 14, 17]]
でした上記の所望の出力を得るために再形成を使用するか?または、より一般的には、リシェイプ機能を使用すると、各軸の使用方法を制御できますか?
2つのこと:
私はこの問題を解決する方法を知っています。転置された大きな行列(z)の各要素を調べ、上記のように変形を適用することができます。これは計算時間を少し増加させ、実際に問題にはなりません。しかし、それは一般化されず、Pythonを感じません。だから私はこれを行うための標準的な啓発された方法があるかどうか疑問に思っていた。
私はこの質問をどのようにフレーズするかについて明確ではありませんでした。もし誰かがこの問題をより良く表現する方法を提案しているなら、私はすべての耳です。
ない、あなたは完全にそれを釘付け、誤解しませんでした。 xとyは実際の例のためだけに構成されています。私が気にするのは、最初の軸に沿ってはるかに大きなzです。 –