Pular para o conteúdo

Como usar facilmente np.arrange no Python?

[

NumPy arange(): Como usar np.arange()

by Mirko Stojiljković data-science intermediate numpy

NumPy é a biblioteca fundamental do Python para computação numérica. Seu tipo mais importante é um tipo de array chamado ndarray. O NumPy oferece muitas rotinas de criação de arrays para diferentes circunstâncias. arange() é uma dessas funções baseadas em intervalos numéricos. Frequentemente é referenciada como np.arange() porque np é uma abreviação amplamente utilizada para NumPy.

Ao final deste artigo, você saberá:

  • O que é np.arange()
  • Como usar np.arange()
  • Quais rotinas são semelhantes a np.arange()

Vamos ver np.arange() em ação!

Bônus Grátis: Clique aqui para ter acesso a um Guia de Recursos gratuito sobre NumPy que aponta para os melhores tutoriais, vídeos e livros para melhorar suas habilidades em NumPy.

Valor de retorno e parâmetros de np.arange()

O NumPy arange() é uma das rotinas de criação de arrays baseadas em intervalos numéricos. Ele cria uma instância de ndarray com valores uniformemente espaçados e retorna a referência para ela.

Você pode definir o intervalo dos valores contidos em um array, o espaço entre eles e seu tipo com quatro parâmetros do arange():

Python

numpy.arange([start, ]stop, [step, ], dtype=None) -> numpy.ndarray

Os três primeiros parâmetros determinam o intervalo dos valores, enquanto o quarto especifica o tipo dos elementos:

  1. stop é o número que define o fim do array e não é incluído no array.
  2. step é o número que define o espaçamento (diferença) entre cada dois valores consecutivos no array e é padrão para 1.

step não pode ser zero. Caso contrário, você obterá um ZeroDivisionError. Você não pode se afastar de qualquer lugar a partir de start se o incremento ou decremento for 0.

Se dtype for omitido, o arange() retornará um array de valores inteiros.

Vamos ver alguns exemplos de como usar o np.arange().

Argumentos de intervalo do np.arange()

Fornecendo todos os argumentos de intervalo

Quando você fornece todos os argumentos de intervalo, start, stop e step, o np.arange() retorna um array com valores no intervalo especificado.

Python

import numpy as np
array = np.arange(start=0, stop=10, step=2)
print(array) # [0 2 4 6 8]

Neste exemplo, o array resultante começa com start=0, termina antes de stop=10 (excluindo o valor 10) e tem um espaçamento de step=2 entre cada valor consecutivo. O resultado é [0, 2, 4, 6, 8].

Fornecendo dois argumentos de intervalo

Ao fornecer apenas dois argumentos de intervalo, start e stop, o np.arange() assume que o espaçamento entre os valores é de 1.

Python

import numpy as np
array = np.arange(start=0, stop=5)
print(array) # [0 1 2 3 4]

Neste exemplo, o array resultante começa em start=0, termina antes de stop=5 (excluindo o valor 5) e tem um espaçamento de 1 entre cada valor consecutivo. O resultado é [0, 1, 2, 3, 4].

Fornecendo um argumento de intervalo

Quando você fornece apenas um argumento de intervalo, stop, o np.arange() assume que start é 0 e o espaçamento entre os valores é de 1.

Python

import numpy as np
array = np.arange(stop=5)
print(array) # [0 1 2 3 4]

Neste exemplo, o array resultante começa em start=0, termina antes de stop=5 (excluindo o valor 5) e tem um espaçamento de 1 entre cada valor consecutivo. O resultado é [0, 1, 2, 3, 4].

Fornecendo argumentos negativos

Você pode fornecer argumentos negativos para start, stop e step no np.arange(). No entanto, é importante ter em mente que a ordem dos argumentos deve ser mantida.

Python

import numpy as np
array = np.arange(start=-5, stop=-1, step=1)
print(array) # [-5 -4 -3 -2]

Neste exemplo, o array resultante começa com start=-5, termina antes de stop=-1 (excluindo o valor -1) e tem um espaçamento de step=1 entre cada valor consecutivo. O resultado é [-5, -4, -3, -2].

Contando para trás

Se fornecermos um valor negativo para step, o np.arange() irá contar para trás.

Python

import numpy as np
array = np.arange(start=5, stop=0, step=-1)
print(array) # [5 4 3 2 1]

Neste exemplo, o array resultante começa com start=5, termina antes de stop=0 (excluindo o valor 0) e tem um espaçamento de step=-1 entre cada valor consecutivo. O resultado é [5, 4, 3, 2, 1].

Obtendo arrays vazios

Se o start e o stop forem iguais ou se stop for menor que start quando o step for positivo, o np.arange() retornará um array vazio.

Python

import numpy as np
array = np.arange(start=5, stop=3, step=1)
print(array) # []

Neste exemplo, o array resultante não possui elementos porque start=5 é maior que stop=3 e o step=1 é positivo. Portanto, nenhum valor é gerado.

Tipos de dados do np.arange()

O np.arange() pode retornar diferentes tipos de dados, dependendo do valor passado para o parâmetro dtype.

Python

import numpy as np
array = np.arange(start=0, stop=5, step=1, dtype=float)
print(array) # [0. 1. 2. 3. 4.]
print(array.dtype) # float64
array = np.arange(start=0, stop=5, step=1, dtype=bool)
print(array) # [False True True True True]
print(array.dtype) # bool

Neste exemplo, o primeiro array é criado com o tipo de dado float, enquanto o segundo array é criado com o tipo de dado bool. Por padrão, o dtype é None, o que resulta em um array com tipo de dado inteiro.

Além de intervalos simples com np.arange()

O np.arange() também pode ser usado para criar intervalos mais complexos, manipulando os parâmetros de intervalo de maneiras diferentes.

Python

import numpy as np
array = np.arange(start=0, stop=10, step=0.5)
print(array) # [0. 0.5 1. 1.5 2. 2.5 3. 3.5 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5]

Neste exemplo, o np.arange() é usado para criar um array que começa em start=0, termina antes de stop=10 (excluindo o valor 10) e tem um espaçamento de step=0.5 entre cada valor consecutivo. O resultado é [0.0, 0.5, 1.0, ..., 9.0, 9.5].

Comparação entre range e np.arange()

Existem semelhanças e diferenças entre a classe integrada de Python range e a função np.arange() do NumPy. Ambas são usadas para criar sequências de números, mas possuem algumas diferenças sutis em termos de parâmetros e saída.

Parâmetros e saída

A função range do Python permite especificar o start, stop e step como parâmetros separados, enquanto o np.arange() aceita todos os parâmetros como argumentos separados. A função range retorna um objeto de intervalo, enquanto o np.arange() retorna uma instância de ndarray.

Criação de sequências

O range do Python cria uma sequência de números inteiros, enquanto o np.arange() também pode criar uma sequência de números decimais e outros tipos de dados, dependendo do valor passado para o parâmetro dtype.

Python

range_sequence = range(0, 5, 1)
print(type(range_sequence)) # <class 'range'>
print(list(range_sequence)) # [0, 1, 2, 3, 4]
np_sequence = np.arange(start=0, stop=5, step=1)
print(type(np_sequence)) # <class 'numpy.ndarray'>
print(np_sequence) # [0 1 2 3 4]

Neste exemplo, a sequência criada com range() é um objeto de intervalo (range), enquanto a sequência criada com np.arange() é uma instância de ndarray. Além disso, a sequência np.arange() é retornada como um array NumPy, enquanto a sequência range é retornada como uma lista.

Loops for em Python

A classe range do Python pode ser usada em loops for, enquanto o np.arange() não pode. No entanto, você pode converter o array ndarray retornado por np.arange() em uma lista e usá-la em um loop for:

Python

import numpy as np
array = np.arange(start=0, stop=5, step=1)
for value in list(array):
print(value)

Neste exemplo, o array ndarray retornado por np.arange() é convertido em uma lista usando a função list(). Em seguida, a lista é usada em um loop for para iterar sobre cada valor.

Outras rotinas baseadas em intervalos numéricos

Além do np.arange(), o NumPy oferece outras rotinas que podem ser usadas para criar arrays baseados em intervalos numéricos. Algumas dessas rotinas incluem:

  • linspace: cria um array com valores espaçados uniformemente em um intervalo especificado.
  • logspace: cria um array com valores espaçados uniformemente em uma escala logarítmica.
  • geomspace: cria um array com valores espaçados uniformemente em uma escala geométrica.

Essas rotinas oferecem diferentes funcionalidades e podem ser úteis em diferentes situações. Você pode explorar essas rotinas para criar arrays com espaçamentos e escalas específicos.

Resumo rápido

Neste artigo, você aprendeu como usar a função np.arange() do NumPy para criar arrays com valores em um intervalo especificado. Vimos os diferentes argumentos de intervalo que podem ser fornecidos e como eles afetam o array resultante. Também discutimos os diferentes tipos de dados que podem ser retornados pelo np.arange() e como a função se compara à classe integrada range. Além disso, mencionamos outras rotinas baseadas em intervalos numéricos oferecidas pelo NumPy.

O NumPy np.arange() é uma ferramenta poderosa para criar arrays numéricos e pode ser útil em uma ampla variedade de situações. Experimente diferentes argumentos de intervalo e veja como eles afetam os arrays que você cria. Com o conhecimento de como criar e trabalhar com arrays NumPy, você estará bem equipado para usar outras bibliotecas do Python que dependem de arrays, como SciPy, Pandas e Matplotlib, para suas análises e visualizações de dados.

Conclusão

Neste tutorial, você aprendeu sobre a função np.arange() do NumPy e como usá-la para criar arrays com valores em intervalos numéricos. Vimos os diferentes argumentos de intervalo que podem ser fornecidos, bem como os diferentes tipos de dados que podem ser usados. Também comparamos o np.arange() com a classe integrada range do Python e discutimos outras rotinas baseadas em intervalos numéricos oferecidas pelo NumPy. Agora você pode criar arrays eficientemente em NumPy usando a função np.arange() e explorar diferentes intervalos de valores em suas análises de dados e experimentações numéricas.