Gerando Números Igualmente Espaçados com NumPy

Beginner

Introdução

Neste tutorial, abordaremos o uso da função numpy.linspace() na biblioteca NumPy. Esta função é utilizada para gerar números igualmente espaçados em um intervalo especificado. É semelhante à função numpy.arange(), com a única diferença sendo que, em vez de um tamanho de passo, o número de valores igualmente espaçados entre o intervalo é especificado usando o argumento num.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Entendendo a Sintaxe

A sintaxe da função numpy.linspace() é a seguinte:

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

A função recebe vários parâmetros:

  • start: O valor inicial do intervalo.
  • stop: O valor final do intervalo.
  • num: O número de amostras igualmente espaçadas sobre o intervalo a ser gerado. O valor padrão é 50.
  • endpoint: Um valor booleano que indica se o ponto final do intervalo deve ou não ser incluído. Se True, então o ponto final é incluído. Se False, então é excluído. O valor padrão é True.
  • retstep: Um valor booleano que indica se o valor do passo deve ou não ser retornado, ou seja, o espaçamento entre os números consecutivos. O valor padrão é False.
  • dtype: O tipo de dado dos itens da matriz.

Gerando um Array usando linspace()

Para gerar uma matriz usando numpy.linspace(), você só precisa passar o início, o fim e o número de amostras desejadas. Aqui está um exemplo:

import numpy as np

a = np.linspace(0, 10, num=11)
print(a)

A saída deste código será:

[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]

Excluindo o Ponto Final

Para excluir o ponto final, simplesmente definimos o parâmetro endpoint como False. Aqui está um exemplo:

b = np.linspace(0, 10, num=10, endpoint=False)
print(b)

A saída deste código será:

[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]

Retornando o Valor da Etapa

Para retornar o valor do passo (step) ou espaçamento entre os números consecutivos gerados por linspace(), defina o parâmetro retstep como True. Aqui está um exemplo:

c, step = np.linspace(0, 10, num=11, retstep=True)
print(c)
print(step)

A saída deste código será:

[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]
1.0

Plotagem usando Linspace()

Podemos usar linspace() em conjunto com matplotlib para plotar gráficos. Aqui está um exemplo:

import matplotlib.pyplot as plt

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)

plt.plot(x, y)
plt.show()

A saída deste código é um gráfico de onda senoidal simples.

Usando Valores Não-Escalares

A partir das versões mais recentes do NumPy, linspace() suporta valores não-escalares para os parâmetros start e end. Aqui está um exemplo:

start = np.array([0, 1, 2])
end = np.array([6, 7, 8])
d = np.linspace(start, end, num=5, axis=1)
print(d)

A saída deste código é:

[[0.  1.5 3.  4.5 6. ]
 [1.  2.5 4.  5.5 7. ]
 [2.  3.5 5.  6.5 8. ]]

Resumo

Neste tutorial, demonstramos o uso da função numpy.linspace() na biblioteca NumPy. Cobrimos a sintaxe, os vários parâmetros e diversos exemplos. Com este conhecimento, você agora pode gerar arrays (vetores) espaçados uniformemente de forma rápida e eficiente.