2016-03-22 5 views
0

python 2d numpy-array probsの形は(6,3)であり、別の1dの配列yの形は(6,)です。 probs[range(6),y]の意味は?例えばprob [range(6)、y]の使用の意味

:ここで使用されるルール

import numpy as np 

probs=np.array([[ 1., 2., 3.], 
       [ 1., 3., 5.], 
       [ 1. , 4., 7.], 
       [ 1., 5., 9.], 
       [ 1., 6., 11.], 
       [ 1., 7., 13.]]) 

y= [0, 0, 1, 1, 2, 2] 

probs[range(6),y] 

+0

numpyを使用していますか? – MSeifert

+0

はい。私はnumpyを使用しています。しかし、numpyの機能はprob [range(6)、y] – Shun

+0

では使われていませんが、 'props'はnumpyの配列ですか? – MSeifert

答えて

0

range(6)の最初の要素はx座標、yの最初の要素は最初の要素のY座標になります。両方のインデックスの2番目の要素は2番目の要素のように取られます。

これもnumpy indexing docsで説明しています。あなたがの両方が必要な場合は

array[0,0] 
# 0 
array[1,2] 
# 5 

:あなたは、整数インデックスを使用することができます0,0または1,2要素を取得するには

import numpy as np 
array = np.arange(9).reshape(3,3) 
array 
 
array([[0, 1, 2], 
     [3, 4, 5], 
     [6, 7, 8]]) 

:それはあなたが3x3の配列があると説明して

それらを組み合わせることができます:

array[[0,1],[0,2]] 
# array([0, 5]) 
この文脈で range(6)[0,1,2,3,4,5]と同等であるため、

# [0, 0], [1, 0], [2, 1], [3, 1], [4, 2], [5, 2] 

:あなたは要素を持つ新しい配列を作成している[range(6),y]とそう

+0

ありがとうございます。配列[[0,1]、[0,2]] typo?配列[[0,1]、[1,2]]にする必要がありますか? – Shun

+0

私はprint プリント配列[[0,1]、[1,2]]を試して、出力[1 5]を得ました、それは正しいですか? – Shun

+0

@Shun - はい、あなたは部分的に正しいです。配列 '[0,1]、[0,2]]が大丈夫だったので、要素' 0,0'と '1,2'が必要でした。私はちょうど混乱したが、結果をコピーするとき。私はそれを修正しました。 – MSeifert