29

私はプログラミングが初めてで、Numpy配列のすべての奇数行とすべての偶数列を1つのコードで同時に選択できるプログラムが必要です。ここに私が試したものがあります:

>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]

で何かを読んだこと(: even)がありますが、どのように使用できるかわかりません。ご協力いただきありがとうございます。

ハン

4

3 に答える 3

86

この配列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]])

上記のように、奇数行を 1 つおきに取得するには:

>>> 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]])

詳細については、インデックス作成のドキュメント ページを参照してください。

于 2012-04-17T20:43:26.147 に答える