Importando NumPy ...

... y otras bibliotecas

Python es un lenguaje que está altamente modularizado: está dividido en bibliotecas que realizan tareas específicas. Para hacer uso de ellas debemos importarlas. Podemos importar cosas de la biblioteca estándar, de paquetes que hayamos descargado (o se enceuntren en nuestra distribución) o de módulos que nosotros mismos construyamos.

import ______

Existen varias formas de importar:

import numpy

Cada vez que queramos acceder a una función de numpy, deberemos escribir:

numpy.sin(5)
numpy.linspace(0,100,50)

In [1]:
import numpy

In [2]:
numpy.sin(numpy.pi)


Out[2]:
1.2246467991473532e-16

import _____ as __

Como esto puede resultar tedioso, suele utilizarse un namespace, el recomendado en la documentación oficial y que usaremos en el curso es:

import numpy as np

Ahora podremos llamar a funciones escribiendo:

np.sin(5)
np.linspace(0,100,50)

In [3]:
import numpy as np

In [4]:
np.sin(np.pi)


Out[4]:
1.2246467991473532e-16

from _____ import ___, ___, ___

También podríamos importar funciones concretas dentro del paquete que queramos usar, por ejemplo:

from numpy import linspace, sin

In [5]:
from numpy import linspace, sin

In [6]:
sin(np.pi)


Out[6]:
1.2246467991473532e-16

from _____ import *

Si esto te sigue pareciendo demasido escribir puedes hacer (altamente no recomendado):

from numpy import *

El asterisco, quiere decir TODO. Esto genera varios problemas:

  • Imporatará gran cantidad de funciones y clases que puede que no necesites.
  • El nombre de estas funciones, puede coincidir con el de alguna de otro módulo que hayas importado, de manera que "la machacará", por lo que se producirán ambigüedades.

Ejemplo: ¿por qué no hacer from numpy import * ?


In [7]:
from numpy import *

a = [1,2,3,4,5]
sin(a)


Out[7]:
array([ 0.84147098,  0.90929743,  0.14112001, -0.7568025 , -0.95892427])

In [8]:
from math import *

sin(a)


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-bd5f2f081266> in <module>()
      1 from math import *
      2 
----> 3 sin(a)

TypeError: a float is required

La función seno que incorporá math no es la misma que la de NumPy. Ambas proporcionarán el seno de un número, evidentemente, el mismo resultado para el mismo número, pero una acepta listas y la otra no. Al hacer la segunda importación, la función seno de NumPy se ha sustituido por la de math y la misma sentencia, da un error. Esto puede hacer que te vuelvas un poco loco si tu código es grande o acabes volviendo loco a alguien si usa tu código.

¿Suficiente? Ahora ya sabes por qué tendrás que escribir np.loquesea siempre.


Hemos aprendido:

  • Cómo importar bibliotecas en Python
  • Por qué debemos importar numpy como np


¡Síguenos en Twitter!



Este notebook ha sido realizado por: Juan Luis Cano y Álex Sáez



<span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">Curso AeroPython</span> por <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName">Juan Luis Cano Rodriguez y Alejandro Sáez Mollejo</span> se distribuye bajo una Licencia Creative Commons Atribución 4.0 Internacional.