相关疑难解决方法(0)

455
推荐指数
7
解决办法
21万
查看次数

消除Python和Numpy构造中的for循环

我正在寻找Python和/或Numpy矢量化的方法,以消除以下的for循环使用:

for i in list_range_values:
    v[list_list_values[i]] += list_comp_values[i]
Run Code Online (Sandbox Code Playgroud)

哪里:

  • list_range_values是一个整数值的Python列表,例如.[1,3,5],从范围(0,R-1,1)中抽取

  • list_comp_values是数值的Python列表,例如.[0.7,9.8,1.25,5,10,11.7,6,0.2]这样len(list_comp_values)= R

  • v是长度为V的numpy向量,使得R可以是<,=,>而不是V.

  • list_list_values是一个列表的Python列表(每个列表包含不同数量的整数值,例如[[3,6,7],[5,7,11,25,99],[8,45],[4,7] ,8],[0,1],[21,31,41],[9,11,22,33,44],[17,19]])从范围(0,V-1,1)中绘制并使用len(list_list_values)= R.

例如.

for i in list_range_values (= [1, 3, 5]):
    i=1: v[[5, 7, 11, 25, 99]] += list_comp_values[1] (= 9.8)
    i=3: v[[4, 7, 8]] += list_comp_values[3] (= 5)
    i=5: v[[21, 31, 41]] += list_comp_values[5] (= 11.7)
Run Code Online (Sandbox Code Playgroud)

有没有可用的方法可以消除for循环?

Cython,Scipy/Weave/Blitz和C模块是替代解决方案,但是要确保首先是否存在Numpy矢量化答案.

python for-loop numpy

7
推荐指数
1
解决办法
1453
查看次数

标签 统计

python ×2

for-loop ×1

numpy ×1

range ×1

xrange ×1