小编Kri*_*ten的帖子

如何向量化这个python代码?

我正在尝试使用NumPy和矢量化操作来使代码段运行得更快.然而,我似乎误解了如何对这段代码进行矢量化(可能是由于对矢量化的理解不完全).

这是带循环的工作代码(A和B是已设置大小的2D数组,已经初始化):

for k in range(num_v):
    B[:] = A[:]
    for i in range(num_v):
        for j in range(num_v):
            A[i][j] = min(B[i][j], B[i][k] + B[k][j])
return A
Run Code Online (Sandbox Code Playgroud)

这是我尝试矢量化上面的代码:

for k in range(num_v):
    B = numpy.copy(A)
    A = numpy.minimum(B, B[:,k] + B[k,:])
return A
Run Code Online (Sandbox Code Playgroud)

为了测试这些,我使用了以下代码,上面的代码包含在一个名为'algorithm'的函数中:

def setup_array(edges, num_v):
    r = range(1, num_v + 1)
    A = [[None for x in r] for y in r]  # or (numpy.ones((num_v, num_v)) * 1e10) for numpy
    for i in r:
        for j in r:
            val = …
Run Code Online (Sandbox Code Playgroud)

python numpy vectorization

14
推荐指数
2
解决办法
1万
查看次数

标签 统计

numpy ×1

python ×1

vectorization ×1