Tôi muốn sử dụng np.zeros
, vì tên của nó. Tôi sẽ không bao giờ sử dụng thành ngữ thứ ba bởi vì (1) nó có hai câu lệnh thay vì một biểu thức duy nhất và (2) khó hơn cho những người NumPy để tối ưu hóa. Trong thực tế, trong NumPy 1.10, np.zeros
vẫn là lựa chọn nhanh nhất, mặc dù tất cả các tối ưu hóa để lập chỉ mục:
>>> %timeit np.zeros(1e6)
1000 loops, best of 3: 804 µs per loop
>>> %timeit np.full(1e6, 0)
1000 loops, best of 3: 816 µs per loop
>>> %timeit a = np.empty(1e6); a[:] = 0
1000 loops, best of 3: 919 µs per loop
Bigger mảng để so sánh với kết quả @ John Zwinck của:
>>> %timeit np.zeros(1e8)
100000 loops, best of 3: 9.66 µs per loop
>>> %timeit np.full(1e8, 0)
1 loops, best of 3: 614 ms per loop
>>> %timeit a = np.empty(1e8); a[:] = 0
1 loops, best of 3: 229 ms per loop
Nguồn
2014-10-06 09:27:11
Đây chính là điều 'np .zeros' là dành cho. Tại sao * sẽ không * bạn sử dụng nó? –
Tôi đang sử dụng nó thực sự. Tuy nhiên, tôi không chắc chắn một trong những cách này là hiệu quả nhất về mặt thời gian và sử dụng bộ nhớ! – Dataman