Obtenha vários números flutuantes em Python

Muhammad Waiz Khan 30 janeiro 2023
  1. Obtenha o intervalo de números de ponto flutuante usando o método numpy.arange() em Python
  2. Obtenha o intervalo de números de ponto flutuante usando a compreensão de lista em Python
  3. Obtenha o intervalo de números de ponto flutuante usando a compreensão do gerador em Python
  4. Obter intervalo de números de ponto flutuante usando a função de gerador em Python
  5. Obtenha o intervalo de números de ponto flutuante usando o método numpy.linspace() em Python
Obtenha vários números flutuantes 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.

Artigo relacionado - Python Float