[英]Iterating over a numpy array with enumerate like function
我想將數組數入一些代碼中。 我正在嘗試遍歷數組。
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熊貓中,有一個函數可以創建[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])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.