Obtenir une plage de nombres flottants en Python
-
Obtenir une plage de nombres à virgule flottante en utilisant la méthode
numpy.arange()
en Python - Obtenir une plage de nombres à virgule flottante à l’aide de la compréhension de liste en Python
- Obtenir une plage de nombres à virgule flottante à l’aide de la compréhension du générateur en Python
- Obtenir une plage de nombres à virgule flottante à l’aide de la fonction Generator en Python
-
Obtenir une plage de nombres à virgule flottante en utilisant la méthode
numpy.linspace()
en Python
Dans ce didacticiel, nous examinerons différentes méthodes pour obtenir une séquence de valeurs flottantes en Python. Supposons que nous ayons besoin d’une série de nombres avec une taille de pas de 0.1
, mais le problème est que la fonction range()
n’accepte pas de flottant en entrée et renvoie un TypeError
à la place.
Nous pouvons générer une séquence de valeurs flottantes avec une taille de pas uniforme en Python en utilisant les méthodes expliquées ci-dessous.
Obtenir une plage de nombres à virgule flottante en utilisant la méthode numpy.arange()
en Python
La méthode numpy.arange(start, stop, step)
renvoie une séquence de valeurs entre les valeurs start
et stop
avec une taille de pas égale à la valeur step
. Les valeurs par défaut des arguments start
et step
sont respectivement 0 et 1.
L’avantage d’utiliser la méthode numpy.arange()
est qu’elle permet de générer la plage des valeurs flottantes. Mais ce n’est pas une fonction par défaut de Python, et la bibliothèque NumPy
est nécessaire pour l’utiliser.
L’exemple de code ci-dessous montre comment utiliser la méthode numpy.arange()
pour obtenir la séquence de valeurs de 0
à 1
avec une taille de pas égale à 0.1
.
import numpy as np
seq = np.arange(0, 1, 0.1)
print(seq)
Production:
[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
Obtenir une plage de nombres à virgule flottante à l’aide de la compréhension de liste en Python
La compréhension de liste est la méthode syntaxique pour créer une nouvelle liste à partir d’une liste existante en Python. Nous pouvons générer la plage ou la séquence de valeurs flottantes en créant une nouvelle liste à partir de la séquence de valeurs retournée par la méthode range()
.
Puisque la méthode range()
ne peut générer que la séquence d’entiers, nous devrons multiplier ou diviser chaque valeur de la séquence par la valeur flottante requise pour obtenir la séquence désirée. Puisque multiplier un entier, c’est-à-dire 3
avec la valeur flottante 0.1
renvoie 0.30000000000000004
, c’est pourquoi il faut préférer diviser l’entier par 10
pour générer la séquence de valeurs flottantes.
L’exemple de code ci-dessous montre comment obtenir la plage ou la séquence de valeurs flottantes en Python à l’aide de la méthode de compréhension de liste.
seq = [x / 10 for x in range(0, 10)]
print(seq)
Production:
[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
Obtenir une plage de nombres à virgule flottante à l’aide de la compréhension du générateur en Python
La compréhension du générateur est une approche syntaxique similaire à la compréhension de liste qui crée un objet générateur itérable en Python. On peut accéder à la nouvelle valeur depuis le générateur en utilisant la méthode next()
ou parcourir toute la séquence en utilisant la boucle for
.
L’exemple de code ci-dessous montre comment utiliser la compréhension du générateur pour obtenir la plage de flottants en Python.
seq = (x / 10 for x in range(0, 10))
for x in seq:
print(x, end=" ")
Production:
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Obtenir une plage de nombres à virgule flottante à l’aide de la fonction Generator en Python
Bien que la compréhension du générateur soit un moyen concis et plus simple d’obtenir un objet générateur en Python, la fonction générateur est un moyen réutilisable et meilleur pour obtenir une plage de valeurs flottantes en utilisant les valeurs start
, stop
et step
de notre choix.
L’exemple de code ci-dessous montre comment créer une fonction de générateur en utilisant le mot-clé yield
, similaire à la fonction range()
en Python.
def myrange(start, stop, step):
while start < stop:
yield start
start = start + step
seq = myrange(0.0, 1.0, 0.1)
for x in seq:
print(x)
Obtenir une plage de nombres à virgule flottante en utilisant la méthode numpy.linspace()
en Python
La méthode numpy.linspace()
comme la méthode numpy.arange()
retourne la séquence de valeurs de la valeur start
à la valeur stop
. Au lieu de l’argument step
, la méthode numpy.linspace()
prend l’argument num
, qui spécifie le nombre de valeurs à générer de la valeur start
à stop
.
Nous devrons donc fournir le nombre de valeurs num
à la méthode numpy.linspace()
; la formule suivante peut calculer la valeur de num
en utilisant les valeurs start
, stop
et step
.
num = (stop - start)/step
L’exemple de code ci-dessous montre comment utiliser numpy.linspace()
pour générer la plage de flottants de 0
à 1
avec le step
égal à 0.1
. La valeur num
pour la séquence requise sera (0 - 1)/0.1 = 10
.
seq = np.linspace(0, 1, 10, endpoint=0)
print(seq)
Production:
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
L’argument endpoint
spécifie s’il faut inclure ou non la dernière valeur de la séquence, car la séquence commence à 0
par défaut.