如何同时选择数组的所有奇数行和所有偶数列 [英] How can I simultaneously select all odd rows and all even columns of an array

查看:105
本文介绍了如何同时选择数组的所有奇数行和所有偶数列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是编程新手,我需要一个程序,该程序可以在一个代码中同时选择Numpy数组的所有奇数行和所有偶数列. 这是我尝试过的:

I'm new to programming and I need a program, that can select all odd rows and all even columns of a Numpy array at the same time in one code. here is what I tried:

>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)读过一些东西,但不知道我可以用哪种方式使用它. 感谢您的帮助.

I've read something with (: even) but don't know in which way I could use it. Thanks for your Help.

Han

推荐答案

假设您有这个数组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]])

要获取其他所有奇数行,就像您上面提到的那样:

To get every other odd row, like you mentioned above:

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

要获取其他偶数列,就像您上面提到的那样:

To get every other even column, like you mentioned above:

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

然后,将它们组合在一起将产生:

Then, combining them together yields:

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

这篇关于如何同时选择数组的所有奇数行和所有偶数列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆