J'ai besoin de tirer des échantillons d'un processus de bruit blanc afin d'implémenter numériquement une intégrale particulière.
Comment puis-je générer cela avec Python (c'est-à-dire numpy, scipy, etc.)?
Vous pouvez y parvenir grâce à numpy.random.normal
fonction , qui tire un nombre donné d'échantillons d'une distribution gaussienne.
import numpy
import matplotlib.pyplot as plt
mean = 0
std = 1
num_samples = 1000
samples = numpy.random.normal(mean, std, size=num_samples)
plt.plot(samples)
plt.show()
La réponse courte est numpy.random.random()
. Description du site Numpy
Mais comme je trouve de plus en plus de réponses à des questions similaires écrites comme numpy.random.normal
, Je soupçonne qu'une petite description est nécessaire. Si je comprends bien Wikipédia (et quelques leçons à l'Université) correctement, Gauss et White Noise sont deux choses distinctes. Le bruit blanc a une distribution uniforme, pas normale (gaussienne).
import numpy.random as nprnd
import matplotlib.pyplot as plt
num_samples = 10000
num_bins = 200
samples = numpy.random.random(size=num_samples)
plt.hist(samples, num_bins)
plt.show()
Ceci est ma première réponse, donc si vous corrigez les erreurs que j'ai pu commettre ici, je me ferai un plaisir de la mettre à jour. Merci =)
Créez des échantillons aléatoires avec une distribution normale (gaussienne) avec numpy.random.normal
:
import numpy as np
import seaborn as sns
mu, sigma = 0, 1 # mean and standard deviation
s = np.random.normal(mu, sigma, size=1000) # 1000 samples with normal distribution
# seaborn histogram with Kernel Density Estimation
sns.distplot(s, bins=40, hist_kws={'edgecolor':'black'})