python - 遍历 numpy 数组以填充 python 列表

标签 python arrays python-3.x numpy

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

相关文章:

python - 将数据帧附加到 sqlite3 表,BLOB 而不是时间戳

python - 溢出错误 : Python int too large to convert to C long

根据字典替换列表中值的 Pythonic 方法

python - 如何在 Python 中比较每一行并获取最后一个完整句子

python - 将二进制输入流转换为文本模式

python - Paramiko 针对实际存在的命令返回 code127

python - 锁定某些单元格以防止在 python openpyxl 中进行编辑

php - 将元素添加到数组的开头而不更改其他数组键

javascript - 将一个数组元素存储在一个变量中

javascript - 在 Javascript (Vue.js) 中按多种美食过滤位置