Быстрый способ заменить все значения в массиве на другой, для списка значений? - PullRequest
0 голосов
/ 29 октября 2019

У меня есть база данных, которую я хочу в 2D массиве, в зависимости от расстояния. Единственный способ сделать это - рассчитать расстояние до всех точек (x, y) в моем пространстве и заменить значения в массиве, чтобы они соответствовали расстоянию, «пройденному» моей трассой данных. Я могу заставить это работать, но это занимает 60 секунд, чтобы сжать числа. Я знаю, что это может идти быстрее, избегая цикла for, но я не могу понять это. Как я могу сделать то, что делает код ниже, но быстрее?

Я пытался использовать np.put, но он не делает то, что я хочу, потому что он запрашивает индексы. Я не знаю индексов! Я искал далеко и широко, но мне не хватает решения.

Трассировка выглядит следующим образом: datatrace, почти везде ноль и несколько пиков в середине и изображение I 'm выглядит так: эллиптические кольца, на которых пик данных имеет пик .

# correlation is my datatrace and is sample_time*sample_rate long, 
# but interesting stuff is happening in the middle of the trace.

samples = np.linspace(0, room_size[1], sample_time*sample_rate)
xx, yy = np.meshgrid(samples, samples)

t = distance(point1, (xx, yy), point2)

z=np.zeros(t.shape)
for samp in samples[np.min(t):np.max(t)]:
    z[t==samp] = correlation[samp]

Код работает так, как и должно, но как мне получить его быстрее?

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