2012-04-17 709 views
12

我是编程新手,我需要一个程序,它可以同时选择一个Numpy数组的所有奇数行和所有偶数列在一个代码中。 这里是我的尝试: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 2012-04-17 20:39:50

回答

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 2017-04-03 03:08:26

相关问题