#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)