加快numpy数组分配

时间:2018-10-25 07:15:13

标签: python numpy

我具有以下结构的功能。它基本上计算矩阵的上三角并使它对称。是否可以使用一些小技巧使它更快?

import numpy as np

def g(x, y):
    # some calculation that returns a float

def f(a):
    """
    a is a list of objects, return a symmetric Numpy array
    """
    n = len(a)
    ret = np.empty((n,n))
    for i in range(1, n):
        for j in range(i+1, n):
            ret[i, j] = ret[j, i] = g(a[i], a[j])

更多详细信息: 这里的a是包含Nx3 numpy数组(粒子的位置)作为属性的对象(轨迹帧)的列表,只有该Nx3 numpy数组与计算有关。因此,为简单起见,我们可以假设a是numpy数组的列表。 g仅使用numpy运算进行计算。例如,可以将其视为几何对齐然后进行平均距离计算。

0 个答案:

没有答案