2012-04-17 705 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

相關問題