python - 使用类似枚举的函数迭代 numpy 数组

标签 python arrays numpy iteration

我想将 numpy 数组放入我的一些代码中。我正在尝试迭代数组。

import numpy as np

a=10.0
b=55.0

y=np.asarray([11,30,54,7,22,5,15,65,15,6])

I =[y[i] / (a + (i+1) * b) for i in range(0, len(y))]

print I

>>> 
[0.16923076923076924, 0.25, 0.30857142857142855, 0.030434782608695653, 0.077192982456140355, 0.014705882352941176, 0.037974683544303799, 0.14444444444444443, 0.029702970297029702, 0.010714285714285714]

到目前为止,我将迭代方法切换为枚举,这将给出相同的结果,但速度更快

J=[y[i] / (a + (i+1) * b) for i, item in enumerate(y)]

print J

在 Python pandas 中,有一个函数可以创建 [1,2,3,4,5,6,...n] 数组,然后使用数组中的值而不是使用 for 循环。这在 numpy 中可用吗?它会使过程更快吗?

最佳答案

您可以使用 np.arange 无需循环即可完成此操作:

>>> c = a + b*(np.arange(1, len(y)+1))
>>> y/c
array([ 0.16923077,  0.25      ,  0.30857143,  0.03043478,  0.07719298,
        0.01470588,  0.03797468,  0.14444444,  0.02970297,  0.01071429])

关于python - 使用类似枚举的函数迭代 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20808313/

相关文章:

php - 如何从多维数组中删除重复项和原始数组?

java - byte[] 不会解析为图像

python - 我安装了多个 Ipython 内核,但此后我无法导入 numpy、pandas

python - 在 NumPy ndArray 中基于 bool 值查找最长序列的更有效解决方案

Python Chromedriver 使用浏览器打开命令提示符

python - 如何了解混淆矩阵的实际标签顺序?

c结构数组的cython内存 View

python - 如何在 scipy 中最小化具有离散变量值的函数

python - Python 中 NumPy 或 SciPy 中 Wolfram Mathematica 的模拟函数

python - 类里面有额外的键值对吗?