当要优化像这样的循环时,是否存在numpy函数或其他任何功能?
for i in range(0,n):
a[i, 0:p] = b[i, 0:p] * c[0:p]
在这里,c [0:p]是一维数组(与i索引无关),可以在循环之前存储一次以节省一些计算量。但是,我更想知道是否存在一个可以代替for循环本身的函数,该函数相当慢。
答案 0 :(得分:1)
如您所指出的那样,可能不需要循环。
assert (c[0:p]).shape == (p,)
以及
assert (a[0:n, 0:p]).shape == (n, p)
assert (b[0:n, 0:p]).shape == (n, p)
您可以直接执行矩阵乘法和赋值来代替循环:
a[0:n, 0:p] = b[0:n, 0:p] * c[0:p]