2012-04-17 84 views
12

Soy nuevo en la programación y necesito un programa que pueda seleccionar todas las filas impares y todas las columnas pares de una matriz Numpy al mismo tiempo en un código aquí es lo que he intentado:Python - Numpy: ¿Cómo puedo seleccionar simultáneamente todas las filas impares y todas las columnas pares de una matriz

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

He leído algo con "(: aun)" pero te conocer de manera wich que podría utilizarlo. gracias por su ayuda.

Han

+2

¿Puede tener más claro cuál es el resultado deseado? – jterrace

Respuesta

44

Digamos que usted tiene esta matriz, 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]]) 

Para obtener vtas extraña, como usted ha mencionado más arriba:

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

para conseguir cada otra columna, incluso , como usted mencionó anteriormente:

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

Entonces, combinándolos juntos produce:

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

Como las matrices numpy están indexadas por cero, creo que está sugiriendo obtener las filas pares y las impares. – intdt

Cuestiones relacionadas