2014-04-12 15 views
9

Tôi có một vector của chiều dài, cho phép nói 10:Tái một mảng 2-D bằng cách xác định chỉ có kích thước cột

foo = np.arange(2,12) 

Để chuyển nó sang một mảng 2-D, với phép nói 2 cột, tôi sử dụng lệnh reshape với các đối số sau đây:

foo.reshape(len(foo)/2, 2) 

tôi đã tự hỏi nếu có một chiều/cú pháp tao nhã hơn để làm điều đó (có thể sth như foo.reshape(,2))

Trả lời

14

Bạn hầu như ha d nó! Bạn có thể sử dụng -1.

>>> foo.reshape(-1, 2) 
array([[ 2, 3], 
     [ 4, 5], 
     [ 6, 7], 
     [ 8, 9], 
     [10, 11]]) 

Khi reshape tài liệu nói:

newshape : int or tuple of ints 
    The new shape should be compatible with the original shape. If 
    an integer, then the result will be a 1-D array of that length. 
    One shape dimension can be -1. In this case, the value is inferred 
    from the length of the array and remaining dimensions. 
Các vấn đề liên quan