我正在遍历一个 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)
成正比。
关于python - 遍历 numpy 数组以填充 python 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32798612/