【问题标题】:Iterating over a numpy array with enumerate like function使用 enumerate like 函数迭代 numpy 数组
【发布时间】:2014-01-15 11:53:24
【问题描述】:

我想将数组添加到我的一些代码中。我正在尝试遍历一个数组。

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 中可用吗?它是否使过程更快?

【问题讨论】:

    标签: python arrays numpy iteration


    【解决方案1】:

    你可以不用循环使用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])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-05
      • 2021-05-11
      • 2014-02-07
      • 2013-01-04
      • 2013-05-05
      • 2011-10-03
      • 2016-01-28
      • 1970-01-01
      相关资源
      最近更新 更多