Obtenir une plage de nombres flottants en Python

Muhammad Waiz Khan 30 janvier 2023
  1. Obtenir une plage de nombres à virgule flottante en utilisant la méthode numpy.arange() en Python
  2. Obtenir une plage de nombres à virgule flottante à l’aide de la compréhension de liste en Python
  3. Obtenir une plage de nombres à virgule flottante à l’aide de la compréhension du générateur en Python
  4. Obtenir une plage de nombres à virgule flottante à l’aide de la fonction Generator en Python
  5. Obtenir une plage de nombres à virgule flottante en utilisant la méthode numpy.linspace() en Python
Obtenir une plage de nombres flottants 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.

Article connexe - Python Float