2016-02-25 6 views
0

Я использую процедуру numpy's random.normal для создания гауссова с заданным средним и стандартным отклонением.Размер массива, созданного из np.random.normal

array_a = an array of len(100) 

gaussian = np.random.normal(loc=array_a,scale=0.1,size=len(2*array_a)) 

Так я ожидаю gaussian иметь mean=array_a и stddev=0.1 и размер gaussian массива в 2 раза array_a. Однако приведенное выше возвращает мне массив с тем же размером, что и у array_a!

Как получить len(gaussian) быть 2 разаlen(array_a) с данным mean и standard deviation?

ответ

1

вы должны мультипликативный len(array_a) * 2 вместо len(array_a * 2) и loc=array_a.mean() Try:

import numpy as np 

array_a = np.arange(100) 
gaussian = np.random.normal(loc=array_a.mean(), scale=0.1, size=2 * len(array_a)) 

gaussian.size Теперь это 200 и gaussian.mean() равно array_a.mean().

+0

Я хотел бы, чтобы каждое значение представляло значение в 'array_a', а не среднее значение' array_a'. – ThePredator

+0

, так что вы хотите, чтобы 100 гауссов в качестве выходных? –

+0

NO !! Каждое значение в «гауссовском» будет иметь другое значение. то есть первое значение «gaussian» будет иметь «средний = первый объект» 'array_a' и т. д. – ThePredator