2012-04-17 26 views
12

Im new to programming và tôi cần một programm, có thể chọn tất cả các hàng lẻ và tất cả các cột của một mảng Numpy cùng một lúc trong một mã. đây là những gì tôi đã cố gắng:Python - Numpy: Làm thế nào tôi có thể đồng thời chọn tất cả các hàng lẻ và tất cả các cột của một mảng

>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 đọc một cái gì đó với "(: chẵn)" nhưng không biết bằng cách Mà tôi có thể sử dụng nó. cảm ơn sự giúp đỡ của bạn.

Han

+2

Bạn có thể rõ ràng hơn về đầu ra mong muốn không? – jterrace

Trả lời

44

Hãy nói rằng bạn có mảng này, 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]]) 

Để có được mỗi hàng lẻ khác, như bạn đã nói ở trên:

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

Để nhận được tất cả, ngay cả cột khác , như bạn đã đề cập ở trên:

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

Sau đó, kết hợp chúng với nhau sản lượng:

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

Khi mảng numpy được lập chỉ mục bằng không, tôi tin rằng bạn đang đề xuất để có được các hàng thậm chí và các cột lẻ. – intdt

Các vấn đề liên quan