2017-07-18 15 views
4

私はPythonで、このサブコードを持っていると私はそれはそれは、特にこの文を何であるかを理解することはできません。numpyのX [:、:、:、i]の意味は何ですか?

X[:,:,:,i] 

サブコードは次のとおりです。

train_dict = sio.loadmat(train_location) 
X = np.asarray(train_dict['X']) 

X_train = [] 
for i in range(X.shape[3]): 
    X_train.append(X[:,:,:,i]) 
X_train = np.asarray(X_train) 

Y_train = train_dict['y'] 
for i in range(len(Y_train)): 
    if Y_train[i]%10 == 0: 
     Y_train[i] = 0 
Y_train = to_categorical(Y_train,10) 
return (X_train,Y_train) 
+5

Xが4D配列であるように見えるので、3Dスライスを切り取り、X_trainに追加します。 –

+0

FYIと同じように、私は "サブコード"が本当の単語ではないと思います。私はそれをコインにしようとあなたの試みを感謝します。 –

+0

@cᴏʟᴅsᴘᴇᴇᴅありがとう@ – AAA

答えて

3

これは、アレイスライスと呼ばれています。前述したように、xは4Dアレイであり、X[:,:,:,i]はその1つの特定の3Dアレイスライスを取得します。

おそらく、寸法の小さい例が役に立ちます。この場合matrix

matrix = np.arange(4).reshape((2,2)) 

二次元アレイである。

array([[0, 1], 
     [2, 3]]) 

したがってmatrix[:, 1]matrixの小さなスライスをもたらすであろう:オリジナルコードにおいて

array([1, 3]) 

matrix[:,:,:, 1]:の各「この次元のすべての要素」のようなものを意味します。

numpyで配列スライスがどのように機能するかを見てみましょうhere

+1

素敵で便利です。 +1 –

+1

@ Bonifacio2ありがとうございました – AAA

+0

ありがとう、@cᴏʟᴅsᴘᴇᴇᴅ。 :) – Bonifacio2

関連する問題