web-dev-qa-db-fra.com

Définition d'un processus de bruit blanc dans Python

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.)?

14
dbliss

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

1000 random samples drawn from a Gaussian distribution of mean=0, std=1

19
Sam

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

Image: Result

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

3
user8866568

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'})

enter image description here

1
Ryan Yarahmadian