簡體   English   中英

迭代numpy數組來填充python列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM