SlideShare una empresa de Scribd logo
Python Científico Python-Madrid 14/04/2011
Cálculo científico El científico necesita:  	-Obtener datos 		-Manipularlos y procesarlos 		-Visualizar los resultados (y entenderlos!!!)
Cálculo científico, ¿Por qué python? Python ya tiene muchos ladrillos para construir la casa (no hay que reinventar) Es algo fácil de aprender Se necesita código eficiente que ejecute rápido Con un solo lenguaje se puede hacer prácticamente todo FLOSS!!!!! (*) (*) Free/Libre  and Open Source Software
Calculo científico, herramientas Numpy Scipy Matplotlib Mayavi Ipython Pythonxy EPD (Enthoughtpythondistribution $$) …
Calculo científico, herramientas Numpy Scipy Matplotlib Mayavi Ipython Pythonxy EPD (Enthoughtpythondistribution $$) …
Numpy Numpy amplía las capacidades de python Calculadora muy eficiente. Básicamente, nos permite disponer de un nuevo contenedor que es un objeto array multidimensional. Además dispone de una serie de rutinas que amplían las capacidades permitiendo hacer operaciones rápidas sobre los arrays, reformatearlos, estadística muy básica,...
Numpy Operaciones elemento a elemento son la forma de trabajar de numpy por defecto Ejemplo
Numpy Vectorización, permite no usar bucles, índices,..., de forma explícita (eso sucede entre bambalinas) Menos líneas de código Más fácil de leer El código se parece más a notación matemática El código es más ‘pythónico’
Numpy Broadcasting, las operaciones son elemento a elemento (hay que ver las reglas de broadcasting de numpy con cuidado para entenderlas mejor) http://www.scipy.org/EricsBroadcastingDoc
Numpy Broadcasting, las operaciones son elemento a elemento
Numpy Broadcasting, las operaciones son elemento a elemento a = arange(10).reshape(2,5) b = ones((5)) print a, b, a+b # Si b = ones((6)) Daría error a = arange(10).reshape(10,1) b = ones((5)).reshape(1,5) print a, b, a+b # Si a o b solo tienen una dimensión y mismo número de elementos dará error
Numpy Soporta más tipos numéricos que python (bool, int, int8-16-32-64, uint8-16-32-64, float, float8-16-32-64, complex, complex64-128). Los tipos numéricos son instancias de la clase dtype. Para convertir de un tipo de número a otro podemos usar el método .astype() o el tipo como una función. Es preferible usar la primera forma.
Numpy Como creamos un array con numpy Convirtiéndolo desde otra estructura de python (listas, tuplas,...) Funciones numpy (arange, zeros, empty, linspace, random, ogrid, mgrid,...) Leyendo desde disco (loadtxt, genfromtxt,…)
Numpy Como creamos un array con numpy Convirtiéndolo desde otra estructura de python (listas, tuplas,...) a = [‘1.2’, ‘3.6’] b = np.array(a).astype(float) # Si quisiéramos solo la parte entera c = np.array(a).astype(float).astype(int)
Numpy Como creamos un array con numpy Funciones numpy (arange, zeros, empty, linspace, random, ogrid, mgrid,...) a = np.arange(10) a = np.zeros((3,4), dtype=int) a = np.linspace(0,10,100) …
Numpy Como creamos un array con numpy Leyendo desde disco (loadtxt, genfromtxt,…) a = np.loadtxt(‘./datos/hito.050m0’) a = np.genfromtxt(‘./datos/hito.050m0’) # genfromtxt es más general, tiene muchas más opciones de lectura, pero es más lento
Numpy Indexing x = np.arange(10).reshape(2,5) x[1][2] = x[1,2] x[np.array([0,1]), np.array([0,1])] # Si el índice está fuera de los límites tendremos error
Numpy Indexing Los arrays están ordenados igual que en C, de forma que el índice último es el que  cambia más rápidamente la localización en memoria. En fortran o IDL esto es al contrario. Máscaras o indices booleanos x[x>5]
Numpy Valores especiales: NaN, Inf, -Inf Y operaciones con/sin ellos  isnan() isinf() isfinite() nan_to_num() nansum() nanmax(), nanmin() nanargmax(), nanargmin()
Numpy Y muchas cosas más que en conjunción con Scipy lo convierten en una herramienta muy poderosa
Matplotlib Permite visualizar datos de forma muy rápida Permite obtener gráficas de calidad para publicaciones
Matplotlib Lo podemos configurar con nuestras preferencias En linux se puede configurar el usuario, el sistema En Win se puede configurar el sistema Se puede configurar la sesión >> rcParams Se puede configurar el script
Matplotlib El principal submódulo para dibujar es pyplot importmatplotlib.pyplot as plt # Con pyplot podemos hacer prácticamente todo de forma sencilla
Matplotlib El principal submódulo para dibujar es pyplot Colores: Se pueden escribir letras que indican colores, nombres de colores, código hexadecimal se puede usar la keywordcolor plt.plot(x,y, color = ‘blue’) plt.plot(x,y, ‘b’) plt.plot(x,y, ‘blue’) plt.plot(x,y, ‘#FF00FF’) plt.plot(x,y, color=‘#FF00FF’)
Matplotlib El principal submódulo para dibujar es pyplot Marcadores: Por supuesto, las líneas y marcadores se pueden controlar más finamente con keywords: Plt.plot(x,color=‘b’,linestyle=‘dashdot’,linewidth=4, marker=‘o’, markerfacecolor=‘red’, markeredgecolor=‘black’, markeredgewidth=4, markersize=12)
Matplotlib El principal submódulo para dibujar es pyplot Marcadores: Aligual que con los colores, hay muchas formas de definir los marcadores.
Matplotlib El principal submódulo para dibujar es pyplot Etiquetas para los ejes: Se controlan mediante xticks e yticks. plt.plot(range(5)) plt.xticks(range(5),(‘x1’, ’x2’, ’x3’, ’x4’, ’x5’))
Matplotlib Tipos de gráficos:
Matplotlib Tipos de gráficos: Histogramas y = np.random.randn(1000) plt.hist(y, 25) Circulares (quesitos) aficion = [3000,3000,100] etiquetas = [‘Madrid’,’Barcelona’,’Getafe’] plt.pie(aficion, labels = etiquetas) Scatter (x vs y) x = arange(1000) y = np.random.randn(1000) plt.scatter(x,y)
Matplotlib Subplots (varios gráficos en el mismo ‘tapiz’): Subplot(nºfilas,nºcolumnas,orden) plt.subplot(211) plt.plot(arange(10) plt.subplot(212) plt.scatter(arange(0,10,-1)
Matplotlib Se puede ampliar: Basemap (para hacer mapping) mplot3d (3D) …
Enlaces y documentación http://python.g-node.org/python-autumnschool-2010/_media/pythonscientific.pdf http://docs.scipy.org/doc/numpy/numpy-user.pdf http://docs.scipy.org/doc/numpy/numpy-ref.pdf http://docs.scipy.org/doc/scipy/scipy-ref.pdf http://www.scipy.org/Cookbook http://matplotlib.sourceforge.net/contents.html Libro: Matplotlibforpythondevelopers (https://www.packtpub.com/matplotlib-python-development/book)

Más contenido relacionado

La actualidad más candente

Ecuaciones Diferenciales - Aplicaciones de las Ecuaciones diferenciales de Pr...
Ecuaciones Diferenciales - Aplicaciones de las Ecuaciones diferenciales de Pr...Ecuaciones Diferenciales - Aplicaciones de las Ecuaciones diferenciales de Pr...
Ecuaciones Diferenciales - Aplicaciones de las Ecuaciones diferenciales de Pr...Kike Prieto
 
Ejercicios resueltos y explicados (conjuntos ortogonales)
Ejercicios resueltos y explicados (conjuntos ortogonales)Ejercicios resueltos y explicados (conjuntos ortogonales)
Ejercicios resueltos y explicados (conjuntos ortogonales)algebra
 
Semana08 identidades trigonometricas
Semana08 identidades trigonometricasSemana08 identidades trigonometricas
Semana08 identidades trigonometricasJhon Villacorta
 
Problemas resueltos-cap-4-fisica-serway
Problemas resueltos-cap-4-fisica-serwayProblemas resueltos-cap-4-fisica-serway
Problemas resueltos-cap-4-fisica-serway
Jamil Agualongo
 
110446970 solucionario-demidovich-tomo-ii-by priale (1)
110446970 solucionario-demidovich-tomo-ii-by priale (1)110446970 solucionario-demidovich-tomo-ii-by priale (1)
110446970 solucionario-demidovich-tomo-ii-by priale (1)Vivi Besita
 
Matemática I - Derivadas (Aplicaciones)
Matemática I - Derivadas (Aplicaciones)Matemática I - Derivadas (Aplicaciones)
Matemática I - Derivadas (Aplicaciones)
Joe Arroyo Suárez
 
Runge-Kutta f
Runge-Kutta fRunge-Kutta f
Runge-Kutta f
fernandoalal
 
Tabla de _derivadas
Tabla de _derivadasTabla de _derivadas
Tabla de _derivadas
edusucina
 
Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)
waltergomez627
 
Ejercicios resueltos(f.vectoriales)(1)
Ejercicios resueltos(f.vectoriales)(1)Ejercicios resueltos(f.vectoriales)(1)
Ejercicios resueltos(f.vectoriales)(1)ratix
 
Ejercicos y problemas de interpolacion de lagrange.
Ejercicos y problemas de interpolacion de lagrange.Ejercicos y problemas de interpolacion de lagrange.
Ejercicos y problemas de interpolacion de lagrange.
Sergio Riveros
 
Formulas de-integración
Formulas de-integraciónFormulas de-integración
Formulas de-integraciónLuis Leon
 
Cinematica ejercicios
Cinematica ejerciciosCinematica ejercicios
Cinematica ejercicios
Luis Alberto Cobeñas Palacios
 
Ejercicios unidad 5
Ejercicios unidad 5Ejercicios unidad 5
Ejercicios unidad 5
thomasbustos
 
La Transformada De Laplace
La Transformada De LaplaceLa Transformada De Laplace
La Transformada De Laplace
Dianitolis
 
Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)
Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)
Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)
Yerikson Huz
 
Newton Raphson-ejercicios resueltos.
Newton Raphson-ejercicios resueltos.Newton Raphson-ejercicios resueltos.
Newton Raphson-ejercicios resueltos.
Eliaquim Oncihuay Salazar
 
Area en-coordenadas-polares3
Area en-coordenadas-polares3Area en-coordenadas-polares3
Area en-coordenadas-polares3
joselucho2805
 
BiolixiviacióN De Cobre Y Biooxidacion De Minerales Auriferos
BiolixiviacióN De Cobre Y Biooxidacion De Minerales AuriferosBiolixiviacióN De Cobre Y Biooxidacion De Minerales Auriferos
BiolixiviacióN De Cobre Y Biooxidacion De Minerales AuriferosFrancisco Gordillo
 

La actualidad más candente (20)

Ecuaciones Diferenciales - Aplicaciones de las Ecuaciones diferenciales de Pr...
Ecuaciones Diferenciales - Aplicaciones de las Ecuaciones diferenciales de Pr...Ecuaciones Diferenciales - Aplicaciones de las Ecuaciones diferenciales de Pr...
Ecuaciones Diferenciales - Aplicaciones de las Ecuaciones diferenciales de Pr...
 
Ejercicios resueltos y explicados (conjuntos ortogonales)
Ejercicios resueltos y explicados (conjuntos ortogonales)Ejercicios resueltos y explicados (conjuntos ortogonales)
Ejercicios resueltos y explicados (conjuntos ortogonales)
 
Semana08 identidades trigonometricas
Semana08 identidades trigonometricasSemana08 identidades trigonometricas
Semana08 identidades trigonometricas
 
Problemas resueltos-cap-4-fisica-serway
Problemas resueltos-cap-4-fisica-serwayProblemas resueltos-cap-4-fisica-serway
Problemas resueltos-cap-4-fisica-serway
 
110446970 solucionario-demidovich-tomo-ii-by priale (1)
110446970 solucionario-demidovich-tomo-ii-by priale (1)110446970 solucionario-demidovich-tomo-ii-by priale (1)
110446970 solucionario-demidovich-tomo-ii-by priale (1)
 
Matemática I - Derivadas (Aplicaciones)
Matemática I - Derivadas (Aplicaciones)Matemática I - Derivadas (Aplicaciones)
Matemática I - Derivadas (Aplicaciones)
 
Runge-Kutta f
Runge-Kutta fRunge-Kutta f
Runge-Kutta f
 
Tabla de _derivadas
Tabla de _derivadasTabla de _derivadas
Tabla de _derivadas
 
Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)
 
Ejercicios resueltos(f.vectoriales)(1)
Ejercicios resueltos(f.vectoriales)(1)Ejercicios resueltos(f.vectoriales)(1)
Ejercicios resueltos(f.vectoriales)(1)
 
Ejercicos y problemas de interpolacion de lagrange.
Ejercicos y problemas de interpolacion de lagrange.Ejercicos y problemas de interpolacion de lagrange.
Ejercicos y problemas de interpolacion de lagrange.
 
Formulas de-integración
Formulas de-integraciónFormulas de-integración
Formulas de-integración
 
Cinematica ejercicios
Cinematica ejerciciosCinematica ejercicios
Cinematica ejercicios
 
Ejercicios unidad 5
Ejercicios unidad 5Ejercicios unidad 5
Ejercicios unidad 5
 
La Transformada De Laplace
La Transformada De LaplaceLa Transformada De Laplace
La Transformada De Laplace
 
Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)
Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)
Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)
 
Newton Raphson-ejercicios resueltos.
Newton Raphson-ejercicios resueltos.Newton Raphson-ejercicios resueltos.
Newton Raphson-ejercicios resueltos.
 
Area en-coordenadas-polares3
Area en-coordenadas-polares3Area en-coordenadas-polares3
Area en-coordenadas-polares3
 
BiolixiviacióN De Cobre Y Biooxidacion De Minerales Auriferos
BiolixiviacióN De Cobre Y Biooxidacion De Minerales AuriferosBiolixiviacióN De Cobre Y Biooxidacion De Minerales Auriferos
BiolixiviacióN De Cobre Y Biooxidacion De Minerales Auriferos
 
Tutorial matlab
Tutorial matlabTutorial matlab
Tutorial matlab
 

Destacado

Tutorial de numpy
Tutorial de numpyTutorial de numpy
Tutorial de numpy
Diego Camilo Peña Ramirez
 
Tutorial de matplotlib
Tutorial de matplotlibTutorial de matplotlib
Tutorial de matplotlib
Diego Camilo Peña Ramirez
 
Desarollando aplicaciones web en python con pruebas
Desarollando aplicaciones web en python con pruebasDesarollando aplicaciones web en python con pruebas
Desarollando aplicaciones web en python con pruebasTatiana Al-Chueyr
 
Python en Android
Python en AndroidPython en Android
Python en Android
Ernesto Crespo
 
Python para desarrollo web de ultima generación
Python para desarrollo web de ultima generaciónPython para desarrollo web de ultima generación
Python para desarrollo web de ultima generación
Futura Networks
 
Pintando gráficas con Python
Pintando gráficas con PythonPintando gráficas con Python
Pintando gráficas con Python
Manuel Martín
 
Numpy Talk at SIAM
Numpy Talk at SIAMNumpy Talk at SIAM
Numpy Talk at SIAM
Enthought, Inc.
 
cam - Unidad 3 - tema 6 - controladores de velocidad
cam - Unidad 3 - tema 6 - controladores de velocidadcam - Unidad 3 - tema 6 - controladores de velocidad
cam - Unidad 3 - tema 6 - controladores de velocidad
UDO Monagas
 
Intro python
Intro pythonIntro python
Arduino y series de datos
Arduino y series de datosArduino y series de datos
Arduino y series de datos
Víctor R. Ruiz
 
INTERFAZ GRÁFICA PARA OPENCV EN PYTHON
INTERFAZ GRÁFICA PARA OPENCV EN PYTHONINTERFAZ GRÁFICA PARA OPENCV EN PYTHON
INTERFAZ GRÁFICA PARA OPENCV EN PYTHON
Rainer Arencibia
 
Inversores trifásicos
Inversores trifásicosInversores trifásicos
Inversores trifásicosjesmc182
 
DomoSecure – Arduino
DomoSecure – ArduinoDomoSecure – Arduino
DomoSecure – Arduino
Rainer Arencibia
 
Introduccion fms500
Introduccion fms500Introduccion fms500
Introduccion fms500jcudris
 
Proyecto minimo viable
Proyecto minimo viableProyecto minimo viable
Proyecto minimo viable
Albert2016
 
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go KPy Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Juan Carlos Gonzales Vitte.
 
Introducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGLIntroducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGL
kdeespana
 
Primeros Pasos en PyQt4
Primeros Pasos en PyQt4Primeros Pasos en PyQt4
Primeros Pasos en PyQt4
Jesse Padilla Agudelo
 

Destacado (20)

Tutorial de numpy
Tutorial de numpyTutorial de numpy
Tutorial de numpy
 
Tutorial de matplotlib
Tutorial de matplotlibTutorial de matplotlib
Tutorial de matplotlib
 
Desarollando aplicaciones web en python con pruebas
Desarollando aplicaciones web en python con pruebasDesarollando aplicaciones web en python con pruebas
Desarollando aplicaciones web en python con pruebas
 
Python en Android
Python en AndroidPython en Android
Python en Android
 
Python para desarrollo web de ultima generación
Python para desarrollo web de ultima generaciónPython para desarrollo web de ultima generación
Python para desarrollo web de ultima generación
 
Pintando gráficas con Python
Pintando gráficas con PythonPintando gráficas con Python
Pintando gráficas con Python
 
Numpy Talk at SIAM
Numpy Talk at SIAMNumpy Talk at SIAM
Numpy Talk at SIAM
 
Introducción a PyQt
Introducción a PyQtIntroducción a PyQt
Introducción a PyQt
 
Variador de velocidad
Variador de velocidadVariador de velocidad
Variador de velocidad
 
cam - Unidad 3 - tema 6 - controladores de velocidad
cam - Unidad 3 - tema 6 - controladores de velocidadcam - Unidad 3 - tema 6 - controladores de velocidad
cam - Unidad 3 - tema 6 - controladores de velocidad
 
Intro python
Intro pythonIntro python
Intro python
 
Arduino y series de datos
Arduino y series de datosArduino y series de datos
Arduino y series de datos
 
INTERFAZ GRÁFICA PARA OPENCV EN PYTHON
INTERFAZ GRÁFICA PARA OPENCV EN PYTHONINTERFAZ GRÁFICA PARA OPENCV EN PYTHON
INTERFAZ GRÁFICA PARA OPENCV EN PYTHON
 
Inversores trifásicos
Inversores trifásicosInversores trifásicos
Inversores trifásicos
 
DomoSecure – Arduino
DomoSecure – ArduinoDomoSecure – Arduino
DomoSecure – Arduino
 
Introduccion fms500
Introduccion fms500Introduccion fms500
Introduccion fms500
 
Proyecto minimo viable
Proyecto minimo viableProyecto minimo viable
Proyecto minimo viable
 
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go KPy Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
 
Introducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGLIntroducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGL
 
Primeros Pasos en PyQt4
Primeros Pasos en PyQt4Primeros Pasos en PyQt4
Primeros Pasos en PyQt4
 

Similar a Python científico (introducción a numpy y matplotlib))

python CIENTIFIFO.pdf
python CIENTIFIFO.pdfpython CIENTIFIFO.pdf
python CIENTIFIFO.pdf
DEMSSHILLLEONELCOUTI
 
Introduccion a Python. Clase 10
Introduccion a Python. Clase 10Introduccion a Python. Clase 10
Introduccion a Python. Clase 10
Ernesto Freyre Gonzalez
 
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdfSesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Marxx4
 
Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machos
Jorge Hernandez
 
Python + Ciencia = ♥
Python + Ciencia = ♥Python + Ciencia = ♥
Python + Ciencia = ♥
Synergic Partners
 
Primeros pasos con Python: Manipulando imágenes ⟷
Primeros pasos con Python: Manipulando imágenes ⟷Primeros pasos con Python: Manipulando imágenes ⟷
Primeros pasos con Python: Manipulando imágenes ⟷
Rodolfo Ferro
 
Python (práctica 2)
Python (práctica 2)Python (práctica 2)
Python (práctica 2)
Fernando Salamero
 
Gestión y Análisis de Datos para las Ciencias Económicas con Python y R
Gestión y Análisis de Datos para las Ciencias Económicas con Python y RGestión y Análisis de Datos para las Ciencias Económicas con Python y R
Gestión y Análisis de Datos para las Ciencias Económicas con Python y R
Francisco Palm
 
02 introduccion a python
02 introduccion a python02 introduccion a python
02 introduccion a python
José Luis Villalpando Aguilar
 
Transparencias taller Python
Transparencias taller PythonTransparencias taller Python
Transparencias taller Python
Sergio Soto
 
Simulacion de pi - monte carlo - buffon java
Simulacion de pi - monte carlo - buffon  javaSimulacion de pi - monte carlo - buffon  java
Simulacion de pi - monte carlo - buffon java
Nestor Paucar Carhuatanta
 
Análisis de datos con Python
Análisis de datos con PythonAnálisis de datos con Python
Análisis de datos con Pythongoyodiaz
 
Unidad V Python e ingeniería civil en obras civiles PVB
Unidad V Python e ingeniería civil en obras civiles PVBUnidad V Python e ingeniería civil en obras civiles PVB
Unidad V Python e ingeniería civil en obras civiles PVB
SistemadeEstudiosMed
 
Aprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación PythonAprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación Python
Cesar Oswaldo Osorio Agualongo
 

Similar a Python científico (introducción a numpy y matplotlib)) (20)

python CIENTIFIFO.pdf
python CIENTIFIFO.pdfpython CIENTIFIFO.pdf
python CIENTIFIFO.pdf
 
Introduccion a Python. Clase 10
Introduccion a Python. Clase 10Introduccion a Python. Clase 10
Introduccion a Python. Clase 10
 
Modelo Dinamico
Modelo DinamicoModelo Dinamico
Modelo Dinamico
 
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdfSesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
 
Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machos
 
Python + Ciencia = ♥
Python + Ciencia = ♥Python + Ciencia = ♥
Python + Ciencia = ♥
 
Presentacion Python
Presentacion  Python Presentacion  Python
Presentacion Python
 
Primeros pasos con Python: Manipulando imágenes ⟷
Primeros pasos con Python: Manipulando imágenes ⟷Primeros pasos con Python: Manipulando imágenes ⟷
Primeros pasos con Python: Manipulando imágenes ⟷
 
Guia Fundamentos scripting RHINO
Guia Fundamentos scripting RHINOGuia Fundamentos scripting RHINO
Guia Fundamentos scripting RHINO
 
Clase1_Python-CTIC
Clase1_Python-CTICClase1_Python-CTIC
Clase1_Python-CTIC
 
Python (práctica 2)
Python (práctica 2)Python (práctica 2)
Python (práctica 2)
 
Modelo Simulado
Modelo SimuladoModelo Simulado
Modelo Simulado
 
Gestión y Análisis de Datos para las Ciencias Económicas con Python y R
Gestión y Análisis de Datos para las Ciencias Económicas con Python y RGestión y Análisis de Datos para las Ciencias Económicas con Python y R
Gestión y Análisis de Datos para las Ciencias Económicas con Python y R
 
Clase2_Python-CTIC
Clase2_Python-CTICClase2_Python-CTIC
Clase2_Python-CTIC
 
02 introduccion a python
02 introduccion a python02 introduccion a python
02 introduccion a python
 
Transparencias taller Python
Transparencias taller PythonTransparencias taller Python
Transparencias taller Python
 
Simulacion de pi - monte carlo - buffon java
Simulacion de pi - monte carlo - buffon  javaSimulacion de pi - monte carlo - buffon  java
Simulacion de pi - monte carlo - buffon java
 
Análisis de datos con Python
Análisis de datos con PythonAnálisis de datos con Python
Análisis de datos con Python
 
Unidad V Python e ingeniería civil en obras civiles PVB
Unidad V Python e ingeniería civil en obras civiles PVBUnidad V Python e ingeniería civil en obras civiles PVB
Unidad V Python e ingeniería civil en obras civiles PVB
 
Aprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación PythonAprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación Python
 

Último

Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
JuanAlvarez413513
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 

Último (20)

Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 

Python científico (introducción a numpy y matplotlib))

  • 2. Cálculo científico El científico necesita: -Obtener datos -Manipularlos y procesarlos -Visualizar los resultados (y entenderlos!!!)
  • 3. Cálculo científico, ¿Por qué python? Python ya tiene muchos ladrillos para construir la casa (no hay que reinventar) Es algo fácil de aprender Se necesita código eficiente que ejecute rápido Con un solo lenguaje se puede hacer prácticamente todo FLOSS!!!!! (*) (*) Free/Libre and Open Source Software
  • 4. Calculo científico, herramientas Numpy Scipy Matplotlib Mayavi Ipython Pythonxy EPD (Enthoughtpythondistribution $$) …
  • 5. Calculo científico, herramientas Numpy Scipy Matplotlib Mayavi Ipython Pythonxy EPD (Enthoughtpythondistribution $$) …
  • 6. Numpy Numpy amplía las capacidades de python Calculadora muy eficiente. Básicamente, nos permite disponer de un nuevo contenedor que es un objeto array multidimensional. Además dispone de una serie de rutinas que amplían las capacidades permitiendo hacer operaciones rápidas sobre los arrays, reformatearlos, estadística muy básica,...
  • 7. Numpy Operaciones elemento a elemento son la forma de trabajar de numpy por defecto Ejemplo
  • 8. Numpy Vectorización, permite no usar bucles, índices,..., de forma explícita (eso sucede entre bambalinas) Menos líneas de código Más fácil de leer El código se parece más a notación matemática El código es más ‘pythónico’
  • 9. Numpy Broadcasting, las operaciones son elemento a elemento (hay que ver las reglas de broadcasting de numpy con cuidado para entenderlas mejor) http://www.scipy.org/EricsBroadcastingDoc
  • 10. Numpy Broadcasting, las operaciones son elemento a elemento
  • 11. Numpy Broadcasting, las operaciones son elemento a elemento a = arange(10).reshape(2,5) b = ones((5)) print a, b, a+b # Si b = ones((6)) Daría error a = arange(10).reshape(10,1) b = ones((5)).reshape(1,5) print a, b, a+b # Si a o b solo tienen una dimensión y mismo número de elementos dará error
  • 12. Numpy Soporta más tipos numéricos que python (bool, int, int8-16-32-64, uint8-16-32-64, float, float8-16-32-64, complex, complex64-128). Los tipos numéricos son instancias de la clase dtype. Para convertir de un tipo de número a otro podemos usar el método .astype() o el tipo como una función. Es preferible usar la primera forma.
  • 13. Numpy Como creamos un array con numpy Convirtiéndolo desde otra estructura de python (listas, tuplas,...) Funciones numpy (arange, zeros, empty, linspace, random, ogrid, mgrid,...) Leyendo desde disco (loadtxt, genfromtxt,…)
  • 14. Numpy Como creamos un array con numpy Convirtiéndolo desde otra estructura de python (listas, tuplas,...) a = [‘1.2’, ‘3.6’] b = np.array(a).astype(float) # Si quisiéramos solo la parte entera c = np.array(a).astype(float).astype(int)
  • 15. Numpy Como creamos un array con numpy Funciones numpy (arange, zeros, empty, linspace, random, ogrid, mgrid,...) a = np.arange(10) a = np.zeros((3,4), dtype=int) a = np.linspace(0,10,100) …
  • 16. Numpy Como creamos un array con numpy Leyendo desde disco (loadtxt, genfromtxt,…) a = np.loadtxt(‘./datos/hito.050m0’) a = np.genfromtxt(‘./datos/hito.050m0’) # genfromtxt es más general, tiene muchas más opciones de lectura, pero es más lento
  • 17. Numpy Indexing x = np.arange(10).reshape(2,5) x[1][2] = x[1,2] x[np.array([0,1]), np.array([0,1])] # Si el índice está fuera de los límites tendremos error
  • 18. Numpy Indexing Los arrays están ordenados igual que en C, de forma que el índice último es el que  cambia más rápidamente la localización en memoria. En fortran o IDL esto es al contrario. Máscaras o indices booleanos x[x>5]
  • 19. Numpy Valores especiales: NaN, Inf, -Inf Y operaciones con/sin ellos isnan() isinf() isfinite() nan_to_num() nansum() nanmax(), nanmin() nanargmax(), nanargmin()
  • 20. Numpy Y muchas cosas más que en conjunción con Scipy lo convierten en una herramienta muy poderosa
  • 21. Matplotlib Permite visualizar datos de forma muy rápida Permite obtener gráficas de calidad para publicaciones
  • 22. Matplotlib Lo podemos configurar con nuestras preferencias En linux se puede configurar el usuario, el sistema En Win se puede configurar el sistema Se puede configurar la sesión >> rcParams Se puede configurar el script
  • 23. Matplotlib El principal submódulo para dibujar es pyplot importmatplotlib.pyplot as plt # Con pyplot podemos hacer prácticamente todo de forma sencilla
  • 24. Matplotlib El principal submódulo para dibujar es pyplot Colores: Se pueden escribir letras que indican colores, nombres de colores, código hexadecimal se puede usar la keywordcolor plt.plot(x,y, color = ‘blue’) plt.plot(x,y, ‘b’) plt.plot(x,y, ‘blue’) plt.plot(x,y, ‘#FF00FF’) plt.plot(x,y, color=‘#FF00FF’)
  • 25. Matplotlib El principal submódulo para dibujar es pyplot Marcadores: Por supuesto, las líneas y marcadores se pueden controlar más finamente con keywords: Plt.plot(x,color=‘b’,linestyle=‘dashdot’,linewidth=4, marker=‘o’, markerfacecolor=‘red’, markeredgecolor=‘black’, markeredgewidth=4, markersize=12)
  • 26. Matplotlib El principal submódulo para dibujar es pyplot Marcadores: Aligual que con los colores, hay muchas formas de definir los marcadores.
  • 27. Matplotlib El principal submódulo para dibujar es pyplot Etiquetas para los ejes: Se controlan mediante xticks e yticks. plt.plot(range(5)) plt.xticks(range(5),(‘x1’, ’x2’, ’x3’, ’x4’, ’x5’))
  • 28. Matplotlib Tipos de gráficos:
  • 29. Matplotlib Tipos de gráficos: Histogramas y = np.random.randn(1000) plt.hist(y, 25) Circulares (quesitos) aficion = [3000,3000,100] etiquetas = [‘Madrid’,’Barcelona’,’Getafe’] plt.pie(aficion, labels = etiquetas) Scatter (x vs y) x = arange(1000) y = np.random.randn(1000) plt.scatter(x,y)
  • 30. Matplotlib Subplots (varios gráficos en el mismo ‘tapiz’): Subplot(nºfilas,nºcolumnas,orden) plt.subplot(211) plt.plot(arange(10) plt.subplot(212) plt.scatter(arange(0,10,-1)
  • 31. Matplotlib Se puede ampliar: Basemap (para hacer mapping) mplot3d (3D) …
  • 32. Enlaces y documentación http://python.g-node.org/python-autumnschool-2010/_media/pythonscientific.pdf http://docs.scipy.org/doc/numpy/numpy-user.pdf http://docs.scipy.org/doc/numpy/numpy-ref.pdf http://docs.scipy.org/doc/scipy/scipy-ref.pdf http://www.scipy.org/Cookbook http://matplotlib.sourceforge.net/contents.html Libro: Matplotlibforpythondevelopers (https://www.packtpub.com/matplotlib-python-development/book)