mảng Xáo trộn như thế này trong numpy
là thẳng về phía trước
Tạo chỉ số suffling lớn (xáo trộn np.arange(1000000)
) và chỉ số các mảng
features = features[I, ...]
labels = labels[I]
info = info[I, :]
Đây không phải là một hoạt động inplace. labels[I]
là bản sao của labels
, không phải là một lát hoặc chế độ xem.
Một thay thế
features[I,...] = features
trông trên bề mặt như nó là một hoạt động inplace. Tôi nghi ngờ rằng nó là, xuống trong mã C. Nó phải được đệm, bởi vì các giá trị I
không được đảm bảo là duy nhất. Trong thực tế, có một phương pháp đặc biệt ufunc
.at
cho các hoạt động không được thực hiện.
Nhưng nhìn vào những gì h5py
nói về cùng một loại này 'chỉ mục ưa thích':
http://docs.h5py.org/en/latest/high/dataset.html#fancy-indexing
labels[I]
lựa chọn được thực hiện, nhưng với những hạn chế.
List selections may not be empty
Selection coordinates must be given in increasing order
Duplicate selections are ignored
Very long lists (> 1000 elements) may produce poor performance
Xáo trộn I
, theo định nghĩa không theo thứ tự tăng dần. Và nó rất lớn.
Ngoài ra, tôi không thấy bất kỳ điều gì về việc sử dụng chỉ mục ưa thích này ở bên trái, labels[I] = ...
.
Ai đó vừa mới bỏ phiếu cho 2 câu trả lời này. Tôi tự hỏi tại sao? Có phải ai đó thất vọng vì chúng tôi đã nói không thể làm được? Hay ai đó có một giải pháp? Bình luận thường là nhiều thông tin hơn mà downvotes. – hpaulj
Có lẽ vì câu hỏi được chỉ định "không bao giờ tải chúng hoàn toàn vào bộ nhớ". Trong cả hai câu trả lời X phải được nạp vào bộ nhớ. – wassname