Numpy의 임의 지수 분포를 사용하여 난수 배열을 만들려고합니다. 이 잘 작동하고있어,하지만 내 프로젝트에 대한 하나의 추가 요구 사항이 있고 그 정확히 얼마나 많은 배열 요소를 특정 값을 지정할 수있는 기능입니다.Python에서 numpy.random.exponential 분포 조작
설명해 드리겠습니다. (코드는 아래에 있지만 설명은 여기에 설명되어 있습니다.) : 나는 임의의 지수 분포를 생성하고 데이터의 히스토그램을 그려 좋은 지수 곡선을 만듭니다. 내가 정말로하고 싶은 것은 변수를 사용하여이 곡선의 y 절편 (곡선이 y 축과 만나는 지점)을 지정하는 것입니다. 히스토그램의 빈 수를 변경하여 기본 방식으로이 작업을 수행 할 수 있지만이 작업은 원래 데이터가 아니라 플롯 만 변경합니다.
여기에 내 코드의 뼈대를 삽입했습니다. 어떤 맥락에서 나는 은하계의 지수 원반을 만들려고합니다. 그래서 생성하고자하는 무작위 배열은 반지름의 배열이고, 지정할 수 있어야하는 변수는 은하계의 중심에있는 숫자 밀도입니다 :
그래서
가이 음모 나 '방식을 제어하여 y 축을 차단 어디 지정할 수 있도록하고 싶습니다, 요약하기 :
import numpy as N
import matplotlib.pyplot as P
n = 1000
scale_radius = 2
central_surface_density = 100 #I would like this to be the controlling variable, even if it's specification had knock on effects on n.
radius_array = N.random.exponential(scale_radius,(n,1))
P.figure()
nbins = 100
number_density, radii = N.histogram(radius_array, bins=nbins,normed=False)
P.plot(radii[0:-1], number_density)
P.xlabel('$R$')
P.ylabel(r'$\Sigma$')
P.ylim(0, central_surface_density)
P.legend()
P.show()
이 코드는 다음과 히스토그램을 생성 히스토그램이 어떻게 그려 졌는지를 변경하지 않고 데이터를 생성했습니다.
더 자세한 설명이 필요하면 도움을 받으십시오.
그게 내가 필요한 것입니다. 고맙습니다. – user2111574
normed = true가 무엇인지 모르는 경우 여기를 확인하십시오. https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.htm 기본적으로 " 범위에서의 적분이 1 "이되도록 정규화 된 빈에서 확률 밀도 함수 –