[英]Iterate over numpy array to fill a python list
我正在迭代一個numpy數組,通過每個元素應用一個函數,並將新值添加到列表中,這樣我就可以保留原始數據。
問題是:它有點慢。
有沒有更好的方法(不更改原始數組)?
import numpy as np
original_data = np.arange(0,16000, dtype = np.float32)
new_data = [i/max(original_data) for i in original_data]
print('done')
你可以這樣做:
new_data = original_data/original_data.max()
Numpy已經按元素執行此操作。
在你的代碼中有一個額外的緩慢來源 :每個調用max(original_data)
將導致對來自original_data
所有元素進行迭代,使你的成本與O(n^2)
成比例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.