SlideShare a Scribd company logo
1 of 10
Download to read offline
Introducción a Python
Ing. Ernesto Freyre G.
Clase 9: Numpy
Objetivos Clase 9
-Numpy
1. Arreglo
2. Operaciones basicas
3. Indexacion, Iteracion, Particionado
4. Matrices
Numpy
- Libreria de extension de Python para trabajo con
Vectores y Matrices.
- Algebra lineal, Transformadas de Fourier y Numeros
aleatorios.
- Base para otras librerias de calculos y graficos
numericos: matplotlib, scipy
- Principal elemento es el Arreglo n-dimensional
homogeneo
Arreglos
- Arreglo multidimensional homogeneo
- Elementos del mismo tipo
- Indexados por una tupla de enteros positivos
- Cada dimension se denomina Axe (Eje)
- La cantidad de ejes se denomina Rank (Rango)
- Clase ndarray (alias: array)
- Propiedades: ndim, shape, size, dtype
import numpy as np
a = np.array( [ [ 1, 2, 3], [4, 5, 6], [7, 8, 9] ] )
>>> a.ndim
3
>>> a.shape
(3,3)
>>> a.size
9
Arreglos
- Creacion explicita mediante un arreglo(tupla) python o un
arreglo(tupla) de arreglos(tuplas).
- Podemos definir el tipo con un parametro “dtype”
- numpy.zeros( dimensiones )
- numpy.ones( dimensiones )
- numpy.empty ( dimensiones )
- arange(inicio, fin, saltos)
- linspace(inicio, fin, cantidad)
- reshape( dimensiones )
import numpy as np
a = np.array( [ [ 1, 2, 3], [4, 5, 6], [7, 8, 9] ] )
b = np.ones( (3, 3) )
z = np.zeros( (3, 3) )
a2 = np.arange( 0, 10, 0.2 )
a3 = np.linspace( 0, 10, 27 )
a33 = a3.reshape(3,3,3)
!
Operaciones basicas
- Suma, Resta, Multiplicacion, Division: por elemento (dot
multiplicacion)
- Comparacion de Arrays: .all .any
- Operaciones unarias: sum, max, min, tambien por ejes
- Funciones universales: sin, cos, exp, sqrt (por elemento)
a = np.ones( (2, 2) )
b = np.ones( (2, 2) ) * 3
>>> print a+b
[[4. 4.]
[4. 4.]]
>>> print a.sum()
4
>>> print a.sum(axis=1)
2
>>> print np.sqrt(b)
[[ 1.73205081 1.73205081]
[ 1.73205081 1.73205081]]
!
Indexado, Particion, Iteracion
- Arreglos de 1 dimension son tratados como listas normales,
iteracion, particion e indices
- Multidimensionales: Un indice por eje, especificado en una
tupla separada por “,” Iterar sobre la primera dimension o
utilizando flat para recorrer los elementos
# Unidimensionales
a = np.arange(10) ** 2
>>> print a
[ 0 1 4 9 16 25 36 49 64 81]
>>> print a[0:5]
[ 0 1 4 9 16]
>>> for i in a:
... print i,
...
0 1 4 9 16 25 36 49 64 81
!
# Multidimensionales
a = np.arange(4).reshape((2,2))
>>> print a
[[0 1]
[2 3]]
>>> print a[1,0]
2
>>> b = np.arange(16).reshape((4,4))
>>> print b[1:3,1:3]
[[ 5 6]
[ 9 10]]
Vistas y Copias
- Cuando se realizan
asignaciones o particionados
realmente lo que se obtiene es
una vista de los mismos datos. Por
lo que si se modifica estos se
modifica el valor original.
- Para copiar valores y dejar los
originales utilizamos la funcion
“copy”
>>> a = np.arange(16).reshape( (4,4) )
>>> a
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
>>> b = a[1:3, 1:3]
>>> b
array([[ 5, 6],
[ 9, 10]])
>>> b[0,0]
5
>>> b[0,0] = 999
>>> b
array([[999, 6],
[ 9, 10]])
>>> a
array([[ 0, 1, 2, 3],
[ 4, 999, 6, 7],
[ 8, 9, 10, 11],
[ 12, 13, 14, 15]])
Modificando Arreglos
- La funcion “ravel” aplana el
arreglo a una dimension.
- Funcion “reshape”permite
crear una vista con otra
dimension.
- Funcion “transpose”cambia
las dimensiones
>>> a = np.arange(16).reshape( (4,4) )
>>> a.ravel()
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15])
>>> b = a.reshape( (2, 8) )
>>> b
array([[ 0, 1, 2, 3, 4, 5, 6, 7],
[ 8, 9, 10, 11, 12, 13, 14, 15]])
>>> b.transpose()
array([[ 0, 8],
[ 1, 9],
[ 2, 10],
[ 3, 11],
[ 4, 12],
[ 5, 13],
[ 6, 14],
[ 7, 15]])
Matrices
- Clase especial “matrix”
- Construyen a partir de arreglos numpy
- Funciones de Algebra Lineal: T, I, solve
A = np.matrix(np.arange(1,5).reshape(2,2))
>>> A
matrix([[1, 2],
[3, 4]])
>>> X = np.matrix(“5 7”)
>>> Y = X.T
>>> A * Y
matrix([[19],
[43]])
>>>np.linalg.solve(A,Y)
matrix([[-3.],
[ 4.]])

More Related Content

What's hot

Composición de funciones
Composición de funcionesComposición de funciones
Composición de funciones
FERNAN0321
 
Algebra De Funciones Presentacion
Algebra De Funciones PresentacionAlgebra De Funciones Presentacion
Algebra De Funciones Presentacion
Angelica
 
Funcion composicion e inversa
Funcion composicion  e inversaFuncion composicion  e inversa
Funcion composicion e inversa
jpinedam
 
Algoritmos de ordenacion_implementacion
Algoritmos de ordenacion_implementacionAlgoritmos de ordenacion_implementacion
Algoritmos de ordenacion_implementacion
JONY21
 

What's hot (19)

Operaciones con Funciones ccesa007
Operaciones con Funciones  ccesa007Operaciones con Funciones  ccesa007
Operaciones con Funciones ccesa007
 
Composición de funciones
Composición de funcionesComposición de funciones
Composición de funciones
 
Ppto composicion con funciones
Ppto composicion  con funcionesPpto composicion  con funciones
Ppto composicion con funciones
 
Matemática Unidad II Tema 4
Matemática Unidad II   Tema 4Matemática Unidad II   Tema 4
Matemática Unidad II Tema 4
 
Matemáticas
MatemáticasMatemáticas
Matemáticas
 
Funciones compuestas
Funciones compuestasFunciones compuestas
Funciones compuestas
 
Fundamentos del calculo integral ccesa007
Fundamentos del calculo integral  ccesa007Fundamentos del calculo integral  ccesa007
Fundamentos del calculo integral ccesa007
 
Algebra De Funciones Presentacion
Algebra De Funciones PresentacionAlgebra De Funciones Presentacion
Algebra De Funciones Presentacion
 
Funcion par e impar
Funcion par e imparFuncion par e impar
Funcion par e impar
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Funcion composicion e inversa
Funcion composicion  e inversaFuncion composicion  e inversa
Funcion composicion e inversa
 
Composición de Funciones
Composición de FuncionesComposición de Funciones
Composición de Funciones
 
Funciones
FuncionesFunciones
Funciones
 
Daniel Morán- Cálculo
Daniel Morán- CálculoDaniel Morán- Cálculo
Daniel Morán- Cálculo
 
Resta de funciones.mejorado
Resta de funciones.mejoradoResta de funciones.mejorado
Resta de funciones.mejorado
 
Tema 0 Repaso Programación en Java
Tema 0 Repaso Programación en JavaTema 0 Repaso Programación en Java
Tema 0 Repaso Programación en Java
 
Python científico (introducción a numpy y matplotlib))
Python científico (introducción a numpy y matplotlib))Python científico (introducción a numpy y matplotlib))
Python científico (introducción a numpy y matplotlib))
 
Algoritmos de ordenacion_implementacion
Algoritmos de ordenacion_implementacionAlgoritmos de ordenacion_implementacion
Algoritmos de ordenacion_implementacion
 
Funciones hojas de calculo
Funciones hojas de calculoFunciones hojas de calculo
Funciones hojas de calculo
 

Similar to Introduccion a Python. Clase 9

Funcion recursiva
Funcion recursivaFuncion recursiva
Funcion recursiva
cricaseco
 
Curso de Nivelación de Algoritmos - Clase 4
Curso de Nivelación de Algoritmos - Clase 4Curso de Nivelación de Algoritmos - Clase 4
Curso de Nivelación de Algoritmos - Clase 4
Ernesto Mislej
 

Similar to Introduccion a Python. Clase 9 (20)

Funcion recursiva
Funcion recursivaFuncion recursiva
Funcion recursiva
 
numsci.pdf
numsci.pdfnumsci.pdf
numsci.pdf
 
Estadística con Lenguaje R: Sesión 3
Estadística con Lenguaje R: Sesión 3Estadística con Lenguaje R: Sesión 3
Estadística con Lenguaje R: Sesión 3
 
[Sesion03] introduccion python
[Sesion03] introduccion python[Sesion03] introduccion python
[Sesion03] introduccion python
 
12637788.ppt
12637788.ppt12637788.ppt
12637788.ppt
 
Comandos r
Comandos rComandos r
Comandos r
 
Tipos basicos
Tipos basicosTipos basicos
Tipos basicos
 
Pf con scala
Pf con scalaPf con scala
Pf con scala
 
Arreglos en C++
Arreglos en C++Arreglos en C++
Arreglos en C++
 
Curso de Nivelación de Algoritmos - Clase 4
Curso de Nivelación de Algoritmos - Clase 4Curso de Nivelación de Algoritmos - Clase 4
Curso de Nivelación de Algoritmos - Clase 4
 
Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10
 
Fundamentos de matlab
Fundamentos de matlabFundamentos de matlab
Fundamentos de matlab
 
Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)
 
Mat lab03
Mat lab03Mat lab03
Mat lab03
 
GUIA DE FUNCIONES.pdf
GUIA DE FUNCIONES.pdfGUIA DE FUNCIONES.pdf
GUIA DE FUNCIONES.pdf
 
Bryan gordillo ensayo_arreglos
Bryan gordillo ensayo_arreglosBryan gordillo ensayo_arreglos
Bryan gordillo ensayo_arreglos
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Metodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosMetodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a Objetos
 
Clase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScriptClase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScript
 
Descubriendo scala
Descubriendo scalaDescubriendo scala
Descubriendo scala
 

More from Ernesto Freyre Gonzalez (10)

Introduccion a Python. Clase 2
Introduccion a Python. Clase 2Introduccion a Python. Clase 2
Introduccion a Python. Clase 2
 
Introduccion a Python. Clase 3
Introduccion a Python. Clase 3Introduccion a Python. Clase 3
Introduccion a Python. Clase 3
 
Introduccion a Python. Clase 4
Introduccion a Python. Clase 4Introduccion a Python. Clase 4
Introduccion a Python. Clase 4
 
Introduccion a Python. Clase 5
Introduccion a Python. Clase 5Introduccion a Python. Clase 5
Introduccion a Python. Clase 5
 
Introduccion a Python. Clase 7
Introduccion a Python. Clase 7Introduccion a Python. Clase 7
Introduccion a Python. Clase 7
 
Introduccion a Python. Clase 10
Introduccion a Python. Clase 10Introduccion a Python. Clase 10
Introduccion a Python. Clase 10
 
Introduccion a Python. Clase 1
Introduccion a Python. Clase 1Introduccion a Python. Clase 1
Introduccion a Python. Clase 1
 
Bluetooth Low Energy y Moviles
Bluetooth Low Energy y MovilesBluetooth Low Energy y Moviles
Bluetooth Low Energy y Moviles
 
Presentación ACADEMIC-OK
Presentación ACADEMIC-OKPresentación ACADEMIC-OK
Presentación ACADEMIC-OK
 
Clase 1 Programacion Android
Clase 1 Programacion AndroidClase 1 Programacion Android
Clase 1 Programacion Android
 

Introduccion a Python. Clase 9

  • 1. Introducción a Python Ing. Ernesto Freyre G. Clase 9: Numpy
  • 2. Objetivos Clase 9 -Numpy 1. Arreglo 2. Operaciones basicas 3. Indexacion, Iteracion, Particionado 4. Matrices
  • 3. Numpy - Libreria de extension de Python para trabajo con Vectores y Matrices. - Algebra lineal, Transformadas de Fourier y Numeros aleatorios. - Base para otras librerias de calculos y graficos numericos: matplotlib, scipy - Principal elemento es el Arreglo n-dimensional homogeneo
  • 4. Arreglos - Arreglo multidimensional homogeneo - Elementos del mismo tipo - Indexados por una tupla de enteros positivos - Cada dimension se denomina Axe (Eje) - La cantidad de ejes se denomina Rank (Rango) - Clase ndarray (alias: array) - Propiedades: ndim, shape, size, dtype import numpy as np a = np.array( [ [ 1, 2, 3], [4, 5, 6], [7, 8, 9] ] ) >>> a.ndim 3 >>> a.shape (3,3) >>> a.size 9
  • 5. Arreglos - Creacion explicita mediante un arreglo(tupla) python o un arreglo(tupla) de arreglos(tuplas). - Podemos definir el tipo con un parametro “dtype” - numpy.zeros( dimensiones ) - numpy.ones( dimensiones ) - numpy.empty ( dimensiones ) - arange(inicio, fin, saltos) - linspace(inicio, fin, cantidad) - reshape( dimensiones ) import numpy as np a = np.array( [ [ 1, 2, 3], [4, 5, 6], [7, 8, 9] ] ) b = np.ones( (3, 3) ) z = np.zeros( (3, 3) ) a2 = np.arange( 0, 10, 0.2 ) a3 = np.linspace( 0, 10, 27 ) a33 = a3.reshape(3,3,3) !
  • 6. Operaciones basicas - Suma, Resta, Multiplicacion, Division: por elemento (dot multiplicacion) - Comparacion de Arrays: .all .any - Operaciones unarias: sum, max, min, tambien por ejes - Funciones universales: sin, cos, exp, sqrt (por elemento) a = np.ones( (2, 2) ) b = np.ones( (2, 2) ) * 3 >>> print a+b [[4. 4.] [4. 4.]] >>> print a.sum() 4 >>> print a.sum(axis=1) 2 >>> print np.sqrt(b) [[ 1.73205081 1.73205081] [ 1.73205081 1.73205081]] !
  • 7. Indexado, Particion, Iteracion - Arreglos de 1 dimension son tratados como listas normales, iteracion, particion e indices - Multidimensionales: Un indice por eje, especificado en una tupla separada por “,” Iterar sobre la primera dimension o utilizando flat para recorrer los elementos # Unidimensionales a = np.arange(10) ** 2 >>> print a [ 0 1 4 9 16 25 36 49 64 81] >>> print a[0:5] [ 0 1 4 9 16] >>> for i in a: ... print i, ... 0 1 4 9 16 25 36 49 64 81 ! # Multidimensionales a = np.arange(4).reshape((2,2)) >>> print a [[0 1] [2 3]] >>> print a[1,0] 2 >>> b = np.arange(16).reshape((4,4)) >>> print b[1:3,1:3] [[ 5 6] [ 9 10]]
  • 8. Vistas y Copias - Cuando se realizan asignaciones o particionados realmente lo que se obtiene es una vista de los mismos datos. Por lo que si se modifica estos se modifica el valor original. - Para copiar valores y dejar los originales utilizamos la funcion “copy” >>> a = np.arange(16).reshape( (4,4) ) >>> a array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]]) >>> b = a[1:3, 1:3] >>> b array([[ 5, 6], [ 9, 10]]) >>> b[0,0] 5 >>> b[0,0] = 999 >>> b array([[999, 6], [ 9, 10]]) >>> a array([[ 0, 1, 2, 3], [ 4, 999, 6, 7], [ 8, 9, 10, 11], [ 12, 13, 14, 15]])
  • 9. Modificando Arreglos - La funcion “ravel” aplana el arreglo a una dimension. - Funcion “reshape”permite crear una vista con otra dimension. - Funcion “transpose”cambia las dimensiones >>> a = np.arange(16).reshape( (4,4) ) >>> a.ravel() array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) >>> b = a.reshape( (2, 8) ) >>> b array([[ 0, 1, 2, 3, 4, 5, 6, 7], [ 8, 9, 10, 11, 12, 13, 14, 15]]) >>> b.transpose() array([[ 0, 8], [ 1, 9], [ 2, 10], [ 3, 11], [ 4, 12], [ 5, 13], [ 6, 14], [ 7, 15]])
  • 10. Matrices - Clase especial “matrix” - Construyen a partir de arreglos numpy - Funciones de Algebra Lineal: T, I, solve A = np.matrix(np.arange(1,5).reshape(2,2)) >>> A matrix([[1, 2], [3, 4]]) >>> X = np.matrix(“5 7”) >>> Y = X.T >>> A * Y matrix([[19], [43]]) >>>np.linalg.solve(A,Y) matrix([[-3.], [ 4.]])