2012-04-17 31 views
12

プログラミングには新しく、Numpy配列のすべての奇数行と偶数列を同時に選択できるprogrammが必要です1つのコードでここ は、私が試したものです:Python - Numpy:配列のすべての奇数行と偶数列を同時に選択するにはどうすればいいですか?

>In [78]: a 

>Out[78]: 
>array([[ 1, 2, 3, 4, 5], 
>  [ 6, 7, 8, 9, 10], 
>  [11, 12, 13, 14, 15], 
>  [16, 17, 18, 19, 20]]) 
> 
>In [79]: for value in range(a.shape[0]): 
>  if value %2 == 0: 
>  print a[value,:] 

>[1 2 3 4 5] 
>[11 12 13 14 15] 
> 
>In [82]: for value in range(a.shape[1]): 
> if value %2 == 1: 
>  print a[:,value] 

>[ 2 7 12 17] 
>[ 4 9 14 19] 

アイブ氏は「(:偶数)」で何かを読んで私はそれを使用することができますウィッヒの方法で知りません。ヘルプに感謝します。

ハン

+2

目的の出力が何であるかを明確にすることはできますか? – jterrace

答えて

44

のは、あなたがこの配列を持っているとしましょう、X:

>>> import numpy 
>>> x = numpy.array([[ 1, 2, 3, 4, 5], 
... [ 6, 7, 8, 9, 10], 
... [11, 12, 13, 14, 15], 
... [16, 17, 18, 19, 20]]) 

あなたは上記のように、他のすべての奇数行を取得するには:

>>> x[::2] 
array([[ 1, 2, 3, 4, 5], 
     [11, 12, 13, 14, 15]]) 

が他のすべての偶数列を取得するには上記のように:

>>> x[:, 1::2] 
array([[ 2, 4], 
     [ 7, 9], 
     [12, 14], 
     [17, 19]]) 

これらを組み合わせると、次の結果が得られます。

>>> x[::2, 1::2] 
array([[ 2, 4], 
     [12, 14]]) 
+0

numpyの配列はゼロでインデックス付けされているので、偶数行と奇数列を取得することをお勧めします。 – intdt

関連する問題