Obtenha vários números flutuantes em Python
-
Obtenha o intervalo de números de ponto flutuante usando o método
numpy.arange()
em Python - Obtenha o intervalo de números de ponto flutuante usando a compreensão de lista em Python
- Obtenha o intervalo de números de ponto flutuante usando a compreensão do gerador em Python
- Obter intervalo de números de ponto flutuante usando a função de gerador em Python
-
Obtenha o intervalo de números de ponto flutuante usando o método
numpy.linspace()
em Python
Neste tutorial, examinaremos vários métodos para obter uma sequência de valores flutuantes em Python. Suponha que precisamos de uma série de números com um tamanho de passo de 0.1
, mas o problema é que a função range()
não aceita um float como entrada e retorna um TypeError
em seu lugar.
Podemos gerar uma sequência de valores flutuantes com um tamanho de passo uniforme em Python usando os métodos explicados abaixo.
Obtenha o intervalo de números de ponto flutuante usando o método numpy.arange()
em Python
O método numpy.arange(start, stop, step)
retorna uma sequência de valores entre os valores start
e stop
com o tamanho do passo igual ao valor step
. O valor padrão dos argumentos start
e step
são 0 e 1, respectivamente.
A vantagem de usar o método numpy.arange()
é que ele pode gerar o intervalo dos valores flutuantes. Mas não é uma função padrão do Python, e a biblioteca NumPy
é necessária para usá-la.
O código de exemplo a seguir demonstra como usar o método numpy.arange()
para obter a sequência de valores de 0
a 1
com o tamanho do passo igual a 0.1
.
import numpy as np
seq = np.arange(0, 1, 0.1)
print(seq)
Resultado:
[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
Obtenha o intervalo de números de ponto flutuante usando a compreensão de lista em Python
Compreensão de lista é o método sintático para criar uma nova lista a partir de uma lista existente no Python. Podemos gerar o intervalo ou sequência de valores flutuantes criando uma nova lista a partir da sequência de valores retornada pelo método range()
.
Como o método range()
pode gerar apenas a sequência de inteiros, teremos que multiplicar ou dividir cada valor da sequência pelo valor flutuante necessário para obter a sequência desejada. Como a multiplicação de um inteiro, ou seja, 3
com o valor flutuante 0.1
retorna 0.30000000000000004
, é por isso que dividir o inteiro por 10
deve ser preferido para gerar a sequência de valores flutuantes.
O código de exemplo a seguir demonstra como obter o intervalo ou sequência de valores flutuantes em Python usando o método de compreensão de lista.
seq = [x / 10 for x in range(0, 10)]
print(seq)
Resultado:
[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
Obtenha o intervalo de números de ponto flutuante usando a compreensão do gerador em Python
Compreensão de gerador é uma abordagem sintática semelhante à compreensão de lista que cria um objeto gerador iterável em Python. Podemos acessar o novo valor do gerador usando o método next()
ou iterar por toda a sequência usando o loop for
.
O código de exemplo a seguir demonstra como usar a compreensão do gerador para obter o intervalo de flutuações em Python.
seq = (x / 10 for x in range(0, 10))
for x in seq:
print(x, end=" ")
Resultado:
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Obter intervalo de números de ponto flutuante usando a função de gerador em Python
Embora a compreensão do gerador seja uma maneira concisa e mais direta de obter um objeto gerador em Python, a função do gerador é uma maneira reutilizável e melhor de obter uma gama de valores flutuantes usando os valores start
, stop
e step
de nossa escolha.
O código de exemplo a seguir demonstra como criar uma função geradora usando a palavra-chave yield
, semelhante à função range()
em 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)
Obtenha o intervalo de números de ponto flutuante usando o método numpy.linspace()
em Python
O método numpy.linspace()
como o método numpy.arange()
retorna a sequência de valores do valor start
ao valor stop
. Em vez do argumento step
, o método numpy.linspace()
usa o argumento num
, que especifica o número de valores a serem gerados do valor start
ao stop
.
Portanto, teremos que fornecer o número de valores num
para o método numpy.linspace()
; a fórmula a seguir pode calcular o valor de num
usando os valores start
, stop
e step
.
num = (stop - start)/step
O código de exemplo a seguir demonstra como usar numpy.linspace()
para gerar o intervalo de flutuações de 0
a 1
com o step
igual a 0.1
. O valor num
para a sequência necessária será (0 - 1)/0.1 = 10
.
seq = np.linspace(0, 1, 10, endpoint=0)
print(seq)
Resultado:
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
O argumento endpoint
especifica se deve incluir o último valor da sequência ou não, já que a sequência começa em 0
por padrão.