Maison  >  Article  >  interface Web  >  Analyser les méthodes de génération de nombres aléatoires couramment utilisées par numpy

Analyser les méthodes de génération de nombres aléatoires couramment utilisées par numpy

王林
王林original
2024-01-26 09:09:07942parcourir

Analyser les méthodes de génération de nombres aléatoires couramment utilisées par numpy

Analyse des méthodes courantes pour générer des nombres aléatoires avec numpy

Les nombres aléatoires jouent un rôle important dans l'analyse des données et l'apprentissage automatique. Numpy est une bibliothèque de calcul numérique couramment utilisée en Python, fournissant diverses méthodes pour générer des nombres aléatoires. Cet article analysera les méthodes courantes de génération de nombres aléatoires dans numpy et donnera des exemples de code spécifiques.

  1. Entiers aléatoires

numpy fournit la fonction numpy.random.randint() qui génère des entiers aléatoires. Cette fonction génère des entiers aléatoires dans une plage spécifiée.

import numpy as np

# 生成范围在[low, high)之间的随机整数
rand_int = np.random.randint(low, high, size)

Parmi eux, low représente la limite inférieure (incluse) de génération d'entiers aléatoires, high représente la limite supérieure (exclusive) et size représente le nombre d'entiers aléatoires générés.

Exemple :

import numpy as np

rand_int = np.random.randint(1, 10, size=5)
print(rand_int)

Sortie :
[4 9 5 3 1]

Le code ci-dessus génère 5 entiers aléatoires allant de 1 à 10.

  1. Nombres à virgule flottante aléatoires

numpy fournit des fonctions numpy.random.rand() et numpy.random.randn() qui génèrent des nombres à virgule flottante aléatoires.

import numpy as np

# 生成[0, 1)之间的均匀分布的随机浮点数
rand_float = np.random.rand(size)

# 生成符合标准正态分布的随机浮点数
rand_normal_float = np.random.randn(size)

Parmi eux, rand_float génère des nombres à virgule flottante aléatoires uniformément répartis entre [0, 1), et rand_normal_float génère des nombres à virgule flottante aléatoires conformes à la distribution normale standard. size représente le nombre de nombres aléatoires à virgule flottante générés.

Exemple :

import numpy as np

rand_float = np.random.rand(5)
rand_normal_float = np.random.randn(5)

print(rand_float)
print(rand_normal_float)

Sortie :
[0.83600534 0.69029467 0.44770399 0.61348757 0.93889918]
[-0.9200914 0.45598762 -0.7640 0891 -0 .18554811 1.67634905]

Le code ci-dessus génère un tableau à virgule flottante aléatoire uniformément distribué de longueur 5 et un tableau de longueur 5 Un tableau de nombres à virgule flottante aléatoires distribués normaux standard.

  1. Random seed

Les nombres aléatoires générés par numpy sont des nombres pseudo-aléatoires par défaut, c'est-à-dire que les nombres aléatoires générés à chaque exécution du programme sont différents. Si vous souhaitez générer la même séquence de nombres aléatoires, vous pouvez utiliser une graine aléatoire.

import numpy as np

# 设置随机种子
np.random.seed(seed)

Parmi eux, la graine représente la valeur de la graine aléatoire. Les séquences de nombres aléatoires générées par la même graine aléatoire sont les mêmes.

Exemple :

import numpy as np

np.random.seed(0)

rand_int = np.random.randint(1, 10, size=5)
print(rand_int)

np.random.seed(0)

rand_int = np.random.randint(1, 10, size=5)
print(rand_int)

Sortie :
[6 1 4 8 4]
[6 1 4 8 4]

Le code ci-dessus définit la graine aléatoire sur 0, en utilisant la même graine aléatoire pour générer deux tableaux d'entiers aléatoires identiques.

Grâce à l'analyse de cet article et aux exemples de code de méthodes courantes pour générer des nombres aléatoires dans numpy, je pense que les lecteurs se familiariseront davantage avec le fonctionnement de la génération de nombres aléatoires dans la bibliothèque numpy. Dans des domaines tels que l'analyse des données et l'apprentissage automatique, la génération de nombres aléatoires est une opération courante. La maîtrise de ces méthodes est très utile pour les expériences de données associées et la formation de modèles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn