Python - Numpy: Как я могу одновременно выбрать все нечетные строки и все четные столбцы массива
Я новичок в программировании, и мне нужна программа, которая может выбирать все нечетные строки и все четные столбцы массива 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]
Я что-то читал с помощью "(: even)", но не знаю, каким образом я мог бы использовать его.
спасибо за вашу помощь.
Хан
Ответы
Ответ 1
Скажем, у вас есть этот массив, 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]])