Добавление Гаусса в массив

#python #arrays #append #gauss

Вопрос:

Я пытаюсь написать код, который добавляет к массиву значения функции плотности вероятности Гаусса. Мне удалось написать это (на основе добавления в списки):

 N=100
U = numpy.array([])
for i in range(0, N):
    n = random.random()
    numpy.append(U,n)
for i in range(0, int(N/2)):
    u1 = U[i]
    u2 = U[i 1]
    numpy.append(U,math.sqrt(-2*math.log(u1))*math.cos(2*math.pi*u2))
    numpy.append(U,math.sqrt(-2*math.log(u1))*math.sin(2*math.pi*u2))
 

но это показывает мне ошибку «индекс 0 выходит за рамки для оси 0 с размером 0». Может быть, кто-нибудь объяснит мне, почему и что я могу сделать, чтобы это исправить?

Ответ №1:

numpy.append не происходит на месте, что означает, что он не изменяет исходный массив, он просто возвращает новый с добавленными значениями. Поэтому одним из возможных исправлений вашего кода является замена:

 numpy.append(U,n)
 

Автор:

 U = numpy.append(U,n)