2
respostas

Tentei usar o short nome de numpy e não funcionou.

no comando "import numpy as arange", tentei trocar por "import np as arange" e não funcionou. Logo, não entendi a necessidade de dar o comando "import numpy as np" sendo que não "np" depois não foi reconhecido como o short nome de numpy. Abraços

2 respostas

Olá, Daniel. Tudo bem?

Primeiramente, vamos entender o que é um short name, que também podemos chamar de apelido.

Ao importar uma biblioteca, utilizamos o as para determinarmos um apelido para a biblioteca.

Por convenção, a biblioteca numpy é importada com o apelido np, como podemos ver a seguir:

import numpy as np

No seu caso em específico, em que foi utilizado o seguinte código:

import numpy as arange

A biblioteca numpy recebeu o apelido arange. Ou seja, quando formos utilizar as funcionalidades do numpy, podemos utilizar seu apelido, que definimos como arange. Entretanto, mais à frente veremos que isso pode ser problemático.

Agora, vamos analisar o outro import, para entendermos o que está acontecendo:

import np as arange

Antes de mais nada, temos que lembrar que estamos tentando importar uma biblioteca válida do Python. Porém, quando você tentar rodar o comando import np as arange, você está tentando importar uma biblioteca chamada np, mas que biblioteca/módulo é essa? Estamos tentando importar uma biblioteca que não existe! Ou seja, np não é uma biblioteca ou módulo, é apenas um apelido.

Mas o que seria esse bendito arange? O arange é um método do numpy, que serve para criar arrays do numpy. Pensando nisso, podemos ter problemas utilizando o nome arange como apelido para outras bibliotecas. Imagina ter uma biblioteca e um método com o mesmo nome?! Não daria nada certo :D

Apesar de não ser recomendado utilizarmos o arange como apelido para outras bibliotecas, podemos importar o arange como método específico do numpy.

Em código, ficaria da seguinte forma:

from numpy import arange

Traduzindo, estamos dizendo o seguinte: do numpy, quero que importe o arange. E é assim que importamos coisas específicas das bibliotecas do Python.

 

Espero ter ajudado, Daniel. Se tiver mais alguma dúvida, estou à disposição. Bons estudos =)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Olá Daniel, boa tarde! Espero que esteja tudo bem!

Segue exemplos, e explicações. Por final, deixo também uma observação.

# importando a biblioteca numpy
# Aqui voce esta simplesmente importando a bibilioteca numpy
import numpy

compras = [['Suco de Uva','Suco de laranja','Refrigerante'],['Batata chips','Biscoito de chocolate','Bolachas'],['Melancia','Mamão','Banana']]

# Quando se importa a biblioteca numpy, sem um modulo especifico para utilização, 
# voce acaba importando toda a biblioteca, e ocupando muito espaço na memoria. 
# Isto no começo não é tão prejudicial se voce não esta desenvolvendo nada além de scripts.
# Mas quando se trabalha em um desenvolvimento de software, todo espaço alocado é importante.
conjunto = numpy.array(compras)

conjunto

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

# importando a biblioteca numpy e apelidando como np
# Aqui voce esta importando numpy e apelidando como np
import numpy as np

compras = [['Suco de Uva','Suco de laranja','Refrigerante'],['Batata chips','Biscoito de chocolate','Bolachas'],['Melancia','Mamão','Banana']]

# Observe a diferença para o codigo anterior.
# Antes, haviamos digitado para utilizar o modulo array, numpy.array(). 
# Aqui já temos a diminuição de três letras, além, é claro de ficar aparentemente mais bonito, e organizado.
conjunto = np.array(compras)

conjunto

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

# da biblioteca numpy importando array
# Aqui voce esta importanto um modulo especifico de numpy, o array
from numpy import array

compras = [['Suco de Uva','Suco de laranja','Refrigerante'],['Batata chips','Biscoito de chocolate','Bolachas'],['Melancia','Mamão','Banana']]

# Voce decidiu que em seu script utilizaria somente o modulo array da biblioteca numpy.
# Desta forma, então, optou por importar desde o começo o modulo, afim, de economizar memoria,
# e deixar o seu código aparentemente mais bonito, e organizado.
conjunto = array(compras)

conjunto

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

# da biblioteca numpy importando array e apelidando como np
# Após ter decidido que usaria somente o modulo array da biblioteca numpy,
# voce escolhe um apelido que remete a esta importação.
from numpy import array as npay

compras = [['Suco de Uva','Suco de laranja','Refrigerante'],['Batata chips','Biscoito de chocolate','Bolachas'],['Melancia','Mamão','Banana']]

# Agora voce pode utilizar o npay, que é um apelido para a sua importação
conjunto = npay(compras)

conjunto

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Como pode ver, os resultados foram os mesmos, sem ao menos, uma alteração sequer. Entretanto, como lhe expliquei, quando você está trabalhando em no desenvolvimento de software acaba repetindo muitas vezes o mesmo termo, o que no final, acaba consumindo uma quantidade importante de processamento, e memória. Os apelidos, ajudam também, no embelezamento do código, deixando os objetivos mais explícitos, e seu trabalho mais organizado.

Caso ainda seja novo no Python, não se assuste, você ainda vai se deparar muito com o uso de apelidos para o bom entendimento, e funcionamento do código.

Agora, explicando e respondendo um pouco da sua pergunta. Primeiramente, você iniciou a pergunta, citando que havia importado o numpy, e o apelidado de arange. Esta é uma coisa que prejudica o entendimento do código, assim como o seu andamento, e não é nada recomendado por se tratar de um nome de modulo existente no numpy. Por isto, no momento em que processou o código, foi gerado um erro. Provavelmente você tentou realizar:

import numpy as arange

meu_array = arange(15)

Ou

meu_array = arange.arange(15)

Ambos semanticamente errados, e podem gerar erro. Após, realizou a troca para:

import np as arange

Entretanto, np não se trata de um biblioteca e sim de um apelido, que damos por convenção ao importar a biblioteca numpy. Neste caso, não seria possivel, importar o modulo arange de um apelido. Assim, você pode importar o modulo arange de três formas:

import numpy

meu_array = numpy.arange(15)

Ou

from numpy import arange

meu_array = numpy.arange(15)

Ou

from numpy import arange as npay

meu_array = npay(15)

Bons estudos ">