Pular para o conteúdo principal

Como usar a função linspace() do NumPy

Aprenda a usar a função linspace() do NumPy neste tutorial rápido e fácil.
Actualizado 15 de jan. de 2025

O NumPy é um pacote essencial no ecossistema de ciência de dados do Python, oferecendo uma ampla gama de funções para manipular dados numéricos com eficiência. Entre elas, a função linspace() é frequentemente usada para gerar valores uniformemente espaçados em um intervalo especificado, o que a torna uma ferramenta útil para tarefas que exigem intervalos numéricos precisos, como visualização de dados e modelagem matemática. Neste tutorial, mostrarei a você os prós e contras da função linspace().

A resposta curta: Como usar np.linspace()

Se você estiver com pressa, aqui está a explicação mais rápida da função linspace(). A função linspace() do NumPy gera uma matriz de números uniformemente espaçados em um intervalo definido. Aqui, por exemplo, criamos uma matriz que começa em 0 e termina em 100, em um intervalo de 5 números. Como você pode esperar, ele retorna uma matriz com [0, 25, 75, 100].

import numpy as np

# Basic usage of linspace to create an array from 0 to 100 with 5 elements
linspace_example = np.linspace(0, 100.0, 5)
linspace_example # Return example

# Output: array([  0.,  25.,  50.,  75., 100.])

Por que usar a função linspace() função?

A função linspace() é um método simples e eficiente para gerar valores linearmente espaçados, oferecendo uma solução útil para vários cenários em que são necessários intervalos numéricos específicos, como na visualização de dados, simulações e até mesmo no ajuste fino de algoritmos. Aqui estão alguns exemplos de como o linspace() pode ser usado:

  • Tarefas de visualização de dados: Por exemplo, ao criar um gráfico de linhas para representar a trajetória de um satélite ao longo do tempo, a função linspace() pode ser usada para gerar os intervalos de tempo em que os dados de posição são amostrados, garantindo uma linha suave e contínua no gráfico.
  • Simulações: Na modelagem financeira, para avaliar o impacto de taxas de juros variáveis no preço dos títulos, o linspace() pode produzir uma gama de taxas de juros, desde a mais baixa possível até a mais alta prevista, permitindo uma análise abrangente de todo o espectro.
  • Pesquisa científica: Ao estudar os efeitos do aquecimento global nas calotas polares, os pesquisadores podem usar linspace() para criar uma série de intervalos de tempo uniformemente espaçados ao longo de várias décadas. Em cada intervalo, eles puderam simular o aumento médio da temperatura global e seu impacto nas taxas de derretimento do gelo.

NumPy linspace() Sintaxe e uso com exemplos

Conforme mencionado anteriormente, a função linspace() cria valores com espaçamento linear, o que é útil para vários cálculos numéricos. Antes de mergulhar nos exemplos, vamos dar uma olhada nos diferentes argumentos com os quais você pode trabalhar ao usar linspace().

NumPy linspace() Argumentos

  • start: O valor inicial da sequência.
  • stop: O valor final da sequência.
  • num (opcional): O intervalo especificado. O padrão é 50 e deve ser não negativo.
  • endpoint (opcional): Se for True (padrão), stop será a última amostra. Se você for False, o valor de parada não será incluído na sequência gerada por linspace(). Isso significa que a função criará amostras com espaçamento uniforme dentro do intervalo do início até um pouco antes da parada, excluindo efetivamente o próprio valor de parada da sequência. Isso pode ser útil quando você precisar de um intervalo que se aproxime, mas não alcance o ponto final, permitindo um controle mais flexível sobre o intervalo de valores gerados.
  • retstep (opcional): Se True, retorna (samples, step), em que step é o espaçamento entre as amostras.
  • dtype (opcional): O tipo da matriz de saída. Se não for fornecido, o dtype será determinado pelos argumentos start e stop.
  • axis (opcional): O eixo no resultado para armazenar as amostras, somente quando você trabalha com matrizes multidimensionais.

Criando matrizes unidimensionais com linspace()

Agora que já entendemos profundamente os argumentos disponíveis em linspace(), vamos ver alguns exemplos em ação!

Criando uma matriz unidimensional uniformemente espaçada usando linspace()

Este exemplo cria uma matriz de 7 números uniformemente espaçados entre 0 e 10.

import numpy as np

# Create an array of 7 evenly spaced elements from 0 to 10
uniform_array = np.linspace(0, 10, num=7)
print("Uniform Array")
uniform_array
Uniform Array
array([ 0., 1.66666667, 3.33333333, 5., 6.66666667,8.33333333, 10.])

Excluindo o ponto final em uma matriz unidimensional uniformemente espaçada usando linspace()

Nesse caso, geramos uma matriz de 8 números entre 10 e 20, mas excluímos o valor final (20) da matriz, mostrando o argumento endpoint em ação.

import numpy as np


# Create an array of 8 elements from 10 to 20, excluding 20
exclude_final_array = np.linspace(10, 20, num=8, endpoint=False)
print("Array Excluding Final Value")
exclude_final_array
Array Excluding Final Value
array([10. , 11.25, 12.5 , 13.75, 15. , 16.25, 17.5 , 18.75])

Incluindo o tamanho do passo em uma matriz unidimensional uniformemente espaçada usando linspace()

Aqui, criamos uma matriz de 4 elementos entre -5 e 5. Também capturamos e exibimos o tamanho da etapa.

import numpy as np


# Create an array of 4 elements from -5 to 5 and capture the step size
step_array, step = np.linspace(-5, 5, num=4, retstep=True)
print("Array with Defined Step Size", step_array)
print("Step Size", step)
Array with Defined Step Size [-5.         -1.66666667  1.66666667  5.        ]
Step Size 3.3333333333333335

Criando matrizes N-dimensionais com linspace()

linspace() também é útil para gerar matrizes multidimensionais. Aqui, mostramos alguns exemplos disso em ação.

Geração de uma matriz bidimensional usando linspace()

Este exemplo ilustra como gerar uma matriz 2D em que cada linha transita suavemente do vetor [0, 10] para [5, 15], criando um efeito de gradiente em 4 etapas.

import numpy as np


# Perform column-wise linear interpolation from [10, 20] to [15, 25] over 3 steps
column_interpolation_array = np.linspace([10, 20], [15, 25], num=3, axis=1)
print("Column-wise Interpolation Array:")
print(column_interpolation_array)
Column-wise Interpolation Array:
[[10.  12.5 15. ]
 [20.  22.5 25. ]]

Alternativas ao NumPy linspace()

Embora o linspace() seja muito útil, há alternativas que vale a pena considerar, como a função arange() do NumPy e as compreensões de lista.

Usando o NumPy arange() função

A função arange() gera valores em um determinado intervalo. Ao contrário de linspace(), o espaçamento entre os valores é especificado, e não o número de valores.

# Using arange to generate values from 0 to 10, spaced by 2
arange_example = np.arange(0, 10, 2)
arange_example

# Returns array([0, 2, 4, 6, 8])

# Using linspace() to generate values from 0 to 10, with interval set to 2
linspace_example = np.linspace(0, 10, 2)
linspace_example

# Returns array([0.,10.0])

Usando compreensões de lista

As compreensões de lista oferecem uma maneira mais pitônica de gerar listas, embora não tenham os benefícios de vetorização e a flexibilidade do NumPy linspace().

list_comp = [x for x in range(10)]
print(list_comp)

# Outputs [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Considerações finais

A função linspace() do NumPy é uma ferramenta fundamental no conjunto de ferramentas da ciência de dados, oferecendo precisão e flexibilidade na geração de sequências numéricas. Se você quiser aprimorar suas habilidades com o NumPy, confira este tutorial sobre matrizes do NumPy, esta folha de dicas sobre o NumPy ou considere a possibilidade de se inscrever em nosso curso Introdução ao NumPy.


Adel Nehme's photo
Author
Adel Nehme
LinkedIn

Adel é educador de ciência de dados, palestrante e evangelista da DataCamp, onde lançou vários cursos e treinamentos ao vivo sobre análise de dados, aprendizado de máquina e engenharia de dados. Ele é apaixonado pela disseminação das habilidades e da alfabetização de dados nas organizações e pela interseção entre tecnologia e sociedade. Ele tem um mestrado em ciência de dados e análise de negócios. Em seu tempo livre, você pode encontrá-lo passeando com seu gato Louis.

Temas

Continue sua jornada de aprendizado com o NumPy hoje mesmo!

Certificação disponível

curso

Introdução ao NumPy

4 hr
43.1K
Domine suas habilidades no NumPy aprendendo a criar, classificar, filtrar e atualizar matrizes usando o censo em árvore da NYC.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

tutorial

Matrizes Python

Matrizes Python com exemplos de código. Saiba como criar e imprimir matrizes usando o Python NumPy hoje mesmo!
DataCamp Team's photo

DataCamp Team

3 min

tutorial

Gráficos de linhas no MatplotLib com Python

Este tutorial prático se aprofunda na criação e na personalização de gráficos de linhas com o Matplotlib, uma biblioteca avançada de visualização de dados em Python.
Arunn Thevapalan's photo

Arunn Thevapalan

11 min

tutorial

Tutorial de indexação de lista Python()

Neste tutorial, você aprenderá exclusivamente sobre a função index().
Sejal Jaiswal's photo

Sejal Jaiswal

6 min

tutorial

Guia passo a passo para criar mapas em Python usando a biblioteca Plotly

Faça seus dados se destacarem com mapas impressionantes criados com Plotly em Python
Moez Ali's photo

Moez Ali

7 min

tutorial

Função do sublinhado (_) no tutorial de Python

Neste tutorial, você aprenderá sobre os usos do sublinhado (_) em python.
Hafeezul Kareem Shaik's photo

Hafeezul Kareem Shaik

8 min

tutorial

Gráfico de linha de série temporal do Matplotlib

Este tutorial explora como criar e personalizar gráficos de linha de séries temporais no matplotlib.
Elena Kosourova's photo

Elena Kosourova

8 min

Ver maisVer mais