ускорить назначение массива - PullRequest
0 голосов
/ 25 октября 2018

У меня есть функция следующей структуры.Он в основном вычисляет верхний треугольник матрицы и делает его симметричным.Можно ли сделать это быстрее, используя некоторые хитрые уловки?

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 (положение частиц) в качестве свойства итолько этот массив Nx3 Numpy имеет отношение к расчету.Таким образом, для простоты мы можем предположить, что a - это список numpy массивов.g использует только вычисления для вычисления.Например, это можно рассматривать как геометрическое выравнивание, а затем вычисление среднего расстояния.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...