2010-05-25 37 views
14

Tôi muốn nối thêm một giá trị vào cuối số numpy.array của mình. Tôi thấy chức năng numpy.append nhưng điều này thực hiện một bản sao chính xác của mảng ban đầu thêm vào giá trị mới cuối cùng của tôi. Tôi muốn tránh các bản sao vì mảng của tôi lớn.nối thêm và thay đổi kích thước đối với mảng numpy

Tôi đang sử dụng phương pháp resize và sau đó đặt chỉ mục cuối cùng có sẵn cho giá trị mới. Bạn có thể xác nhận rằng resize là cách tốt nhất để nối thêm một giá trị vào cuối? Nó không di chuyển bộ nhớ xung quanh một cách nào đó?

oldSize = myArray,shape(0) 
myArray.resize(oldSize + 1) 
myArray[oldSize] = newValue 
+0

Điều này có thể được sử dụng cho bạn: http://stackoverflow.com/questions/2345518/numpy-array-memory-issue. Nhưng nó có thể không :) – mtrw

Trả lời

7

Thử nghiệm thời gian đơn giản của tôi về chắp thêm và thay đổi kích thước cho thấy việc thay đổi kích thước nhanh hơn khoảng 3x và cách nhanh nhất tôi có thể nghĩ. Ngoài ra, câu trả lời cho this question dường như ngụ ý rằng việc thay đổi kích thước mảng là cách để đi bởi vì nó là tại chỗ.

Bản án: Sử dụng định lại kích thước

P.S. Bạn cũng có thể muốn kiểm tra this discussion từ danh sách gửi thư gắt gỏng.

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