2017-11-06 7 views
1
x = np.random.randn(4, 3, 3, 2) 
print(x[1,1]) 

output: 
[[ 1.68158825 -0.03701415] 
[ 1.0907524 -1.94530359] 
[ 0.25659178 0.00475093]] 

私はpython初心者です。私は本当に上記のような4次元配列のインデックスを理解することはできません。 x [1,1]はどういう意味ですか?例えば直感的にこの4Dインデックス配列を説明する

は、ベクトル

a = [[2][3][8][9]], a[0 = 2, a[3] = 9. 

のために私はこれを取得するが、私は[1,1]を参照何xはわかりません。

詳しく説明してください。ありがとうございました。

+2

'x [1,1]'は 'x [1,1、:、:]'と言う簡単な方法です。違いがあれば見てください。 – Divakar

+0

@Divakar So x [1,1、:、:]は第1次元と第2次元が印刷され、第3と第4が無視されることを意味しますか?もしそれが愚かな質問であれば申し訳ありません。 – RPM

+0

答えを受け入れるのは時期尚早です。それでも他人からの興味深い貢献があるかもしれません。 –

答えて

2

2D配列は行列です。配列の配列です。

A 4D配列は、基本的には行列の行列である:1つのインデックスを指定

matrix of matrices

はあなたの行列のリストを与える:2つのインデックスを指定

>>> x[1] 
array([[[-0.37387191, -0.19582887], 
     [-2.88810217, -0.8249608 ], 
     [-0.46763329, 1.18628611]], 

     [[-1.52766397, -0.2922034 ], 
     [ 0.27643125, -0.87816021], 
     [-0.49936658, 0.84011388]], 

     [[ 0.41885001, 0.16037164], 
     [ 1.21510322, 0.01923682], 
     [ 0.96039904, -0.22761806]]]) 

enter image description here

はあなたを与えますマトリックス:

つのインデックスを指定

enter image description here

あなたの配列を与える:

>>> x[1, 1, 1, 1] 
-0.87816021212791107 

enter image description here

0123:4つのインデックスを指定

>>> x[1, 1, 1] 
array([ 0.27643125, -0.87816021]) 

enter image description here

はあなたに単一の要素を提供します

x[1,1]は、大きな行列の2番目の行の2番目の列に保存された小さな行列を返します。トップレベルで、それは次のようになりますので、

+1

偉大な答え。シンプルで直感的です。 –

+0

@eric簡単にしていただきありがとうございます。 x [1,1,1]の出力は行列x [1,1]の '2番目の行'のように見える配列を与えます。代わりに「2番目の列」が必要な場合はどうすればよいですか?これを書く方法は? – RPM

+0

@RPM: 'x [1、1、:、1]' –

2

4D numpyの配列は、深い4層をネストされた配列である:

[ # 1st level Array (Outer) 
    [ # 2nd level Array 
     [[1, 2], [3, 4]], # 3rd level arrays, containing 2 4th level arrays 
     [[5, 6], [7, 8]] 
    ], 
    [ # 2nd Level array 
     [[9, 10], [11, 12]], 
     [[13, 14], [15, 16]] 
    ] 
] 

x[1,1]はまず、のは、一度にこの一つの発現を解凍してみましょう、x[1][1]に展開します

[ 
    [[1, 2], [3, 4]], 
    [[5, 6], [7, 8]] 
] 

次式は次のようになります:式x[1]は、以前の配列から次の対象であるグローバル配列から最初の要素を選択

[ 
    [[1, 2], [3, 4]], 
    [[5, 6], [7, 8]] 
][1] 

だから(配列の最初の要素を選択する)ことを評価することは、私たちに次のような結果が得られます。

[[1, 2], [3, 4]] 

あなたは、4D配列内の要素を選択するを参照してください選択し、私たちに3D配列を与えることができたよう3次元配列の要素は2次元配列を与え、2次元配列から要素を選択すると1次元配列が得られます。

関連する問題