Эффективный метод NumPy для итерации элементов NUMPY - PullRequest
0 голосов
/ 07 ноября 2019

С помощью следующего фрагмента кода я пытаюсь сгенерировать вектор, в котором каждый его элемент взят из своего нормального распределения. Значения «среднее» и «стандартное отклонение» (аргументы для random.normal) для этого получаются из 2-х чиселых векторов, meanVect и varVect. Оба вектора имеют тот же shape, что и у вектора, который должен быть сгенерирован.

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

from numpy import random
meanVect = np.random.rand(1,100) # using random vectors for MWE
varVect = np.random.rand(1,100)  # Originally vectors from a different source is used
newVect = [random.normal(meanVect[i],varVect[i]) for i in range(len(meanVects[0])) ]

1 Ответ

2 голосов
/ 07 ноября 2019

Поскольку np.random.normal принимает массивоподобные входы для loc и scale, вы можете просто сделать:

newVect = np.random.normal(meanVect, varVect)

Пока оба входных вектора имеют одинаковые.shape, это должно работать.

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