私は(非常に)初心者のPythonユーザーですが、PythonコードをRに変換しようとしていますが、配列の再形成に関する混乱した問題が発生しました。 Iは、2行4列の2次元アレイを作ったようnumpy配列の形を変更する次元を追加する
X1 = np.array([[-0.047, -0.113, 0.155, 0.001],
[0.039, 0.254, 0.054, 0.201]], dtype=float)
In:X1
Out:
array([[-0.047, -0.113, 0.155, 0.001],
[0.039, 0.254, 0.054, 0.201]])
In:X1.shape
Out: (2,4)
OK:
は、いくつかの例のデータを作成します。私はこれに満足しています。混乱のコード行で発生する:
X2 = X1.reshape((2, -1, 1))
In: X2
Out:
array([[[-0.047],
[-0.113],
[0.155],
[0.001]],
[0.039],
[0.254],
[0.054],
[0.201]]])
In: X2.shape
Out: (2, 4, 1)
は、だから私は、私は(私はリシェイプコマンドで3桁目1
だと思います)余分な次元を追加したことを知っているが、私は他に、この何を理解していませんやった。形状はまだ2行4列あることを意味しますが、明らかに何かが変更されています。もう一度私の動機はRで同じ操作をすることですが、私が知るまでは私がここで変わったことを理解しています。 (これはひどい疑問であれば私には許してください。私は昨日Pythonを始めました!)
本当にありがとうございました。私の例では、「X1」は次元(2,4)を持ち、「X2」は次元(2,4,1)を持っています。なぜなら、それらを印刷すると、「X1」はセルが並んでいる行を示し、 'は個々の細胞を一つずつ示していますか? – user2498193
まあ、2D空間で3Dデータを印刷するのは本当に混乱しています。 'X2'には3つの角括弧があるので、取得するデータは行に沿ってではなく、3次元で並べられます。例えば、 'X2 [0、0、:]'を印字してみてください。 –
okありがとう@blue_note - これは本当に役に立ちました。これらのステップに問題がないことを理解するのに役立ちましたが、それ以降の配列代数は別々に処理されていました - 多くのありがとう! – user2498193