2012-04-17 14 views
12

Ich bin neu in der Programmierung und ich brauche ein Programm, das alle ungeraden Zeilen und alle geraden Spalten eines Numpy-Arrays gleichzeitig auswählen kann in einem Code. hier ist, was ich versucht:Python - Numpy: Wie kann ich gleichzeitig alle ungeraden Zeilen und alle geraden Spalten eines Arrays auswählen?

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

Ive las etwas mit „(: gerade)“, aber in wich Weise weiß nicht, ich könnte es benutzen. danke für Ihre Hilfe.

Han

+2

Können Sie mehr darüber im Klaren sein, was die gewünschte Ausgabe ist? – jterrace

Antwort

44

Angenommen, Sie haben dieses Array haben, 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]]) 

Um alle anderen ungeraden Reihe zu bekommen, wie Sie bereits erwähnt:

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

Um alle anderen auch Spalte zu erhalten , wie Sie oben erwähnt:

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

Dann kombiniert sie zusammen ergibt:

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

Da numpy Arrays durch Null indiziert sind, glaube ich, dass Sie vorschlagen, die geraden Zeilen und ungeraden Spalten zu erhalten. – intdt

Verwandte Themen