2017-09-09 7 views
1

I y_enc形状(224、224、21)のndarrayであるいくつかのコードラベルの形状(224、224)のndarrayあるnp.eye(n)[nparray]はどういう意味ですか?

y_enc = np.eye(21)[label] 

スルーつもり

でも印刷形状を有する、私はこの声明を理解することに問題があります。 np.eyeは次元21 x 21の対角行列を生成すると仮定されています。それに続く[label]は何を意味しますか?

+0

に2インデックス番号を与えることによって、特定の要素にアクセスすることができ2d配列であるとして。 – bhomass

答えて

0

Documentationから。 numpy.eye

Return a 2-D array with ones on the diagonal and zeros elsewhere.

例:

>>np.eye(3) 
array([[ 1., 0., 0.], 
    [ 0., 1., 0.], 
    [ 0., 0., 1.]]) 
>>> np.eye(3)[1] 
array([ 0., 1., 0.]) 
[label]

は、配列要素のインデックス付けあります。したがって、その中に1つの要素しかない場合は、与えられた行数の要素を配列として返します。

>>> np.eye(3)[1] 
array([ 0., 1., 0.]) 
>>> np.eye(3)[2] 
array([ 0., 0., 1.]) 

それはあなたがまた、他の質問への参照を提供してください[row_index, column_index]

>>> np.eye(3)[2,1] 
0.0 
>>> np.eye(3)[2,2] 
1.0 
>>> np.eye(3)[1,1] 
1.0 
+0

あなたはそれを釘付けにするとは思わない。ラベル自体がアダレイです。インデックスのリストだけではありません。また、ラベル方法のインデックスは21を超えています。私が言ったように、y_encは(224,224,21) – bhomass

+0

okの形になります。このエラーについてのあなたの説明よりも。 '>>> A = np.eye(21)[224,224,21] トレースバック(最新の呼び出しの最後):配列 のためにあまりにも多くのインデックス': はIndexErrorで ファイル ""、ライン1、 –

関連する問題