【问题标题】:Iterate over numpy array to fill a python list遍历 numpy 数组以填充 python 列表
【发布时间】:2015-09-26 15:08:58
【问题描述】:

我正在遍历一个 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')

【问题讨论】:

    标签: python arrays python-3.x numpy


    【解决方案1】:

    你可以这样做:

    new_data = original_data/original_data.max()
    

    Numpy 已经按元素执行了这个操作。

    在您的代码中有一个额外的缓慢来源:每次调用 max(original_data) 都会导致对来自 original_data 的所有元素进行迭代,从而使您的成本与 O(n^2) 成正比。 p>

    【讨论】:

    • 非常感谢。这种方法会有很大帮助。
    猜你喜欢
    • 1970-01-01
    • 2023-04-04
    • 2021-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多