▷ Cursos de Programación de 0 a Experto © Garantizados
Iniciar sesión Sign up

Iniciar sesión/Registrarse

Cursos Favoritos 0

Buscar

Menú

NumPy: Funciones basicas de algebra

  • Publicado por: Rafael Fernandez
  • Categoría: Blog Principiante Python
7 comentarios
NumPy Funciones basicas de algebra

NumPy nos agrega apoyo para el cálculo de vectores y matrices con funciones matemáticas de alto nivel. En 2005, Travis Oliphant creó NumPy incorporando características de Numarray a NumPy. Hoy en día NumPy es de código abierto y es la librería por excelencia de Python para vectores y matrices.

Objetivo del 9º tutorial de Curso de Python para Principiantes

Explorar la librería Numpy y sus funciones.

Realizar operaciones con vectores y matrices en Python.

Numpy: Álgebra en Python

Operaciones básicas

Para cargar Numpy en Python e invocarlo de forma sencilla se suele utilizar el alias np

import numpy as np # Importamos numpy como np

 

Numpy para cargar un archivo de datos y lo mostramos

Cargamos los datos del archivo.txt en este caso el delimitador es la coma.

archivoDatos=np.loadtxt('C:\ruta\archivoDatos.txt', delimiter = ',')


Arrays con Numpy

  • ndarray.ndim –> Proporciona el número de dimensiones de nuestro array.
  • ndarray.dtype –> Es un objeto que describe el tipo de elementos del array.
  • ndarray.shape –> Devuelve la dimensión del array, es decir, una tupla de enteros indicando el tamaño del array en cada dimensión. Para una matriz de n filas y m columnas obtendremos (n,m).
  • ndarray.data –> El buffer contiene los elementos actuales del array.
  • ndarray.itemsize –> devuelve el tamaño del array en bytes.
  • ndarray.size –> Es el número total de elementos del array.

import numpy as np # Importamos numpy como el alias np
miArray = np.arange(10) # Creamos un array de 0 a 9 separados de uno en uno
print(type(miArray))
numdim= miArray.ndim
dim=miArray.shape
tam= miArray.size
byte=miArray.itemsize

 

  • identity(n,dtype) –>Devuelve la matriz identidad, es decir, uma matriz cuadrada nula excepto en su diagonal principal que es unitaria. n es el número de filas (y columnas) que tendrá la matriz y dtype es el tipo de dato. Este argumento es opcional. Si no se establece, se toma por defecto como flotante.
  • ones(shape,dtype) –>Crea un array de 1 compuesto de shape elementos.
  • zeros(shape, dtype) –>Crea un array de 0 compuesto de “shape” elementos”.
  • linspace(start,stop,num,endpoint=True,retstep=False) –>Crea un array con valor inicial start, valor final stop y num elementos.
  • empty(shape, dtype) –>Crea un array de ceros compuesto de “shape” elementos” sin entradas.
  • meshgrid(x,y) –>Genera una malla a partir de dos los arrays x, y.
  • eye(N, M, k, dtype) –>Crea un array bidimensional con unos en la diagonal k y ceros en el resto. Es similar a identity. Todos los argumentos son opcionales. N es el número de filas, M el de columnas y k es el índice de la diagonal. Cuando k=0 nos referimos a la diagonal principal y por tanto eye es similar a identity.
  • arange([start,]stop[,step,],dtype=None) –>Crea un array con valores distanciados step entre el valor inicial star y el valor final stop. Si no se establece step python establecerá uno por defecto.

import numpy as np # Importamos numpy como el alias np
g=np.zeros( (3,4) )
print(g)
k=np.linspace( 1, 4, 9 )
print(k)
X,Y=np.meshgrid([1,2,3],[7,9,34])
print(X)
print(Y)

Matrices con Numpy

Suma: se realiza elemento a elemento ya sea arrays o matrices. Ejemplo de suma y el producto por un escalar:


import numpy as np # Importamos numpy como el alias np
a = np.array([[8, 2], [8, 4]])
b=a+a
print(b)
c=a*b
print(c)

Ejemplo de matrices y funciones con álgebra lineal como traspuestas, conjugado, inversa, cálculos de determinantes ecuaciones lineales, autovalores ….
import numpy as np # Importamos numpy como el alias np
g=np.matrix( [[3,4,-9], [7,4,-5] ,[1,3,9]] )
print(g)
b=np.matrix( [[-9], [-5] ,[9]] )
print(b)
c=g*b
print(c)
bt=b.T #traspuestas
print(bt)
bh=b.H #traspuestas y conjudaga
print(bh)
gi=g.I #inversa
print(gi)
detgi=np.linalg.det(gi) #calculo del determinante
tragi=np.trace(gi) #calculo de la traza

Producto matricial y producto elemento a elemento:

import numpy as np # Importamos numpy como el alias np
a = np.array([[8, 2], [8, 4]])
b=np.dot(a,a)
print(b)
c=a*a
print(c)
d=np.multiply(a, a)
print(d)

Operaciones y Funciones con Numpy

Producto vectorial y producto exterior:

import numpy as np # Importamos numpy como el alias np
a = np.array([[8, 1, 4]])
b= np.array([[3, 7, 4]])
c= np.cross(a, b) # Producto vectorial
print(c)
d=np.outer(a, b) # Producto exterior
print(d)

Ejemplo de funciones trigonométricas y la transformada de Fourier:

import numpy as np # Importamos numpy como el alias np
x=np.linspace(0,1,100)
y=np.sin(x)
print (np.fft.fft(y))

Valores propios y vectores propios

En python podemos realizar un calculo de un valor propio y su vector propio, ustilizando el método .eig() de numpy:

import numpy as np
from numpy.linalg import eig

A = np.array([[1,2],[3,4]])
valor_y_vector = eig(A)
print(valor_y_vector)

El método .eig() devuelve dos tuplas: el primero son los valores propios y el segundo es una matriz cuyas columnas son los dos vectores propios, el resultado por consola es el siguiente:

λ python numpy.py
(array([-0.37228132,  5.37228132]), array([[-0.82456484, -0.41597356],
       [ 0.56576746, -0.90937671]]))

Como se que me devuelve una tupla, podemos desempaquetarla y guardarla en variables por separadas:

import numpy as np
from numpy.linalg import eig

A = np.array([[1,2],[3,4]])
valor_y_vector = eig(A)

valores_propios, vectores_propios = eig(A)
print("Matríz de valores propios: ", valores_propios)
print("Matríz de vectores propios: ", vectores_propios)

Al ejecuta obtenemos lo siguientes valores:

λ python numpy.py"
Matríz de valores propios:  [-0.37228132  5.37228132]
Matríz de vectores propios:  [[-0.82456484 -0.41597356]
 [ 0.56576746 -0.90937671]]

La librería Numpy juega un papel importante en la programación científica y la ciencia de datos con Python, es muy importante aprender a utilizar los distintos modulos cientificos que posee esta famosa librería.

➡ ¿Quieres saber mas de Python? Te invitamos al Curso de Python para Principiantes:

Curso Python desde 0

Autor:Rafael Fernandez

Empezé estudiando Física aunque mas tarde me decanté por la Ingeniería. Después de hacer un master de Hidráulica (esp. Aero-hidrodinámica de Vehículos) comenzé el PhD en Ingeniería. Hoy en día me encuentro trabajando para la empresa ITK Engineering AG como ingeniero de desarrollo. Entre mi pasiones está el desarrollo e implementación de todo tipo de códigos en Python y otros lenguages. Puedes visitar mi perfil en Linkedin.

7 comentarios

  • Entrada / Salida en Python. Errores y excepciones - El Blog para Aprender Python
    junio 21, 2017 a 9:20 am Responder

    […] ➡ Numpy: Álgebra en Python […]

  • Operaciones Básicas en Imágenes - El Blog para Aprender Python
    julio 3, 2017 a 8:54 am Responder

    […] todas las operaciones en esta sección están principalmente relacionadas con Numpy más que a OpenCV. Conocer bien Numpy es un requerimiento para […]

  • Transformaciones geométricas de imágenes - El Blog para Aprender Python
    julio 13, 2017 a 1:42 pm Responder

    […] M se puede crear utilizando la función np.float32 de la librería Numpy (ver curso introductorio). Esta matriz luego se pasa como argumento a la función cv2.warpAffine(). Observa el […]

  • Introducción del curso de Principiante - El Blog para Aprender Python
    julio 17, 2017 a 8:55 am Responder

    […] al ejecutar nuestros programas. La penúltima parte del curso esta enfocada en realizar operaciones de algebra, cálculos y en como graficar los resultados obtenidos. Por último nos enfocaremos en […]

  • Números Aleatorios o Módulo Random - ▷ Cursos Python y más desde 0 a Experto ? garantizados
    noviembre 6, 2018 a 9:04 pm Responder

    […] Curso Python desde 0, 9º clase […]

  • Operaciones Básicas en Imágenes - ▷ Cursos de Programación de 0 a Experto © Garantizados
    agosto 30, 2019 a 3:44 am Responder

    […] todas las operaciones en esta sección están principalmente relacionadas con Numpy más que a OpenCV. Conocer bien Numpy es un requerimiento para escribir un […]

  • Transformaciones geométricas de imágenes - ▷ Cursos de Programación de 0 a Experto © Garantizados
    agosto 30, 2019 a 4:12 am Responder

    […] matriz M se puede crear utilizando la función np.float32 de la librería Numpy (ver curso introductorio). Esta matriz luego se pasa como argumento a la función cv2.warpAffine(). Observa el siguiente […]

Deja una respuesta Cancelar la respuesta

⏩ Curso de OpenCV ⭐⭐
⏩ Curso Python de Análisis de Datos ⭐⭐
⏩ Curso Python de SQLite ⭐⭐
⏩ Curso Python para Raspberry Pi ⭐⭐
⏩ Curso Python de Selenium ⭐⭐
⏩ Curso Python de Web Scraping ⭐⭐
⏩ Curso Python de Videojuegos ⭐⭐
⏩ Curso de Machine Learning ⭐⭐⭐
⏩ Curso Python de Deep Learning ⭐⭐⭐
⏩ Curso Python PLN ⭐⭐⭐
⏩ Curso Python Dlib & OpenCV ⭐⭐⭐
⏩ Curso de Tkinter ⭐
⏩ Curso Python de Redes ⭐
curso de python para principiantes
curso-opencv-vision-artificial
curso-analisis-de-datos
machine-learning-python
curso-selenium
curso-videojuegos
web-scraping-python
curso-dlib-opencv
curso-raspberry-pi

Cursos de Iniciación

⏩ Tutorial Python desde cero ⭐
⏩ Aprender Java desde cero⭐
⏩ Aprender JavaScript desde 0 ⭐
⏩ Aprender Html y Css desde 0 ⭐
⏩ Aprender PHP desde 0 ⭐
⏩ Aprender C desde 0 ⭐

Sobre

Unipython es una plataforma de aprendizaje online dirigida a personas que quieran mejorar su carrera profesional. El objetivo de Unipython es proporcionar cursos online de calidad en los campos de la Programación, Internet de las cosas, Analisis de Datos, Inteligencia Artificial, Desarrollo Web/Apps, Testeo, Videojuegos y Tecnología Creativa.

+Info

  • Que dicen de nosotros
  • Contacto
  • FAQ
  • Política de Privacidad
  • Términos y condiciones

Para empresas

  • Contrata a nuestros graduados
  • Servicios para empresas

Síguenos

  • Linkedin
  • Youtube
Buscar