2024-10-01 04:57:03 发布
网友
我需要计算一个双和,现在我在双for循环中这样做,如下所示:
k = 3 sumterm = 0.0 for i in range(k): for j in range(i+1): sumterm = i+2*j
我想把这个和矢量化,但我坚持的是,我不仅仅是求I和j的所有组合的和,而是求j<;I+1的和。我该如何将其矢量化?你知道吗
你要做的是在三角形矩阵上求一个函数的和。下面是使用for循环的方法,我稍微修改了它以适应我们的抽象。你知道吗
k = 3 summation = 0.0 for i in range(k + 1): # Loop from 0 to k for j in range(i + 1): # Loop from 0 to i summation += func(i, j) # Sum the value
通过用itertools.product而不是循环抽象矩阵,可以对求和进行矢量化。你知道吗
itertools.product
from itertools import product summation = sum(func(i, j) for i, j in product(range(k + 1), repeat=2) if j <= i)
函数product返回一个迭代器,这是内存有效的,特别是当需要k变大时。你知道吗
product
k
你要做的是在三角形矩阵上求一个函数的和。下面是使用for循环的方法,我稍微修改了它以适应我们的抽象。你知道吗
通过用
itertools.product
而不是循环抽象矩阵,可以对求和进行矢量化。你知道吗函数
product
返回一个迭代器,这是内存有效的,特别是当需要k
变大时。你知道吗相关问题 更多 >
编程相关推荐