SlideShare una empresa de Scribd logo
1 de 32
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

Propiedades de los límites y factorizacion de productos notables
Propiedades de los límites y factorizacion de productos notablesPropiedades de los límites y factorizacion de productos notables
Propiedades de los límites y factorizacion de productos notablesmatemateblog
 
probabilidad un tema mas
probabilidad un tema mas probabilidad un tema mas
probabilidad un tema mas Alain Cervantes
 
Congruencia De TriáNgulos
Congruencia De TriáNgulosCongruencia De TriáNgulos
Congruencia De TriáNgulosCarmen Batiz
 
Interseccion superficies
Interseccion superficiesInterseccion superficies
Interseccion superficiesannie ww
 
simetria axial central rotacion y traslacion
simetria axial central rotacion y traslacion simetria axial central rotacion y traslacion
simetria axial central rotacion y traslacion k4rol1n4
 
Regla de Cramer para Sistemas de Ecuaciones Lineales. Presentación diseñada ...
Regla de Cramer  para Sistemas de Ecuaciones Lineales. Presentación diseñada ...Regla de Cramer  para Sistemas de Ecuaciones Lineales. Presentación diseñada ...
Regla de Cramer para Sistemas de Ecuaciones Lineales. Presentación diseñada ...JAVIER SOLIS NOYOLA
 
Derivadas Implícitas y Gráfico de Derivadas (Asintotas)
Derivadas Implícitas y Gráfico de Derivadas (Asintotas)Derivadas Implícitas y Gráfico de Derivadas (Asintotas)
Derivadas Implícitas y Gráfico de Derivadas (Asintotas)Anyelo Galicia
 
Algebra Lineal
Algebra LinealAlgebra Lineal
Algebra Linealtile
 

La actualidad más candente (16)

Propiedades de los límites y factorizacion de productos notables
Propiedades de los límites y factorizacion de productos notablesPropiedades de los límites y factorizacion de productos notables
Propiedades de los límites y factorizacion de productos notables
 
PARÁBOLA
PARÁBOLAPARÁBOLA
PARÁBOLA
 
probabilidad un tema mas
probabilidad un tema mas probabilidad un tema mas
probabilidad un tema mas
 
Números imaginarios
Números imaginariosNúmeros imaginarios
Números imaginarios
 
Expresiones algebraicas
Expresiones algebraicasExpresiones algebraicas
Expresiones algebraicas
 
Proyecto de calculo
Proyecto de calculoProyecto de calculo
Proyecto de calculo
 
Congruencia De TriáNgulos
Congruencia De TriáNgulosCongruencia De TriáNgulos
Congruencia De TriáNgulos
 
Interseccion superficies
Interseccion superficiesInterseccion superficies
Interseccion superficies
 
Calculo diferencial
Calculo diferencialCalculo diferencial
Calculo diferencial
 
Determinantes
DeterminantesDeterminantes
Determinantes
 
simetria axial central rotacion y traslacion
simetria axial central rotacion y traslacion simetria axial central rotacion y traslacion
simetria axial central rotacion y traslacion
 
Regla de Cramer para Sistemas de Ecuaciones Lineales. Presentación diseñada ...
Regla de Cramer  para Sistemas de Ecuaciones Lineales. Presentación diseñada ...Regla de Cramer  para Sistemas de Ecuaciones Lineales. Presentación diseñada ...
Regla de Cramer para Sistemas de Ecuaciones Lineales. Presentación diseñada ...
 
Calculo Vectorial - Parte II
Calculo Vectorial - Parte IICalculo Vectorial - Parte II
Calculo Vectorial - Parte II
 
Derivadas Implícitas y Gráfico de Derivadas (Asintotas)
Derivadas Implícitas y Gráfico de Derivadas (Asintotas)Derivadas Implícitas y Gráfico de Derivadas (Asintotas)
Derivadas Implícitas y Gráfico de Derivadas (Asintotas)
 
LA LINEA RECTA
LA LINEA RECTALA LINEA RECTA
LA LINEA RECTA
 
Algebra Lineal
Algebra LinealAlgebra Lineal
Algebra Lineal
 

Destacado

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 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ónFutura Networks
 
Pintando gráficas con Python
Pintando gráficas con PythonPintando gráficas con Python
Pintando gráficas con PythonManuel Martín
 
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 velocidadUDO Monagas
 
Arduino y series de datos
Arduino y series de datosArduino y series de datos
Arduino y series de datosVí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 PYTHONRainer Arencibia
 
Inversores trifásicos
Inversores trifásicosInversores trifásicos
Inversores trifásicosjesmc182
 
Introduccion fms500
Introduccion fms500Introduccion fms500
Introduccion fms500jcudris
 
Proyecto minimo viable
Proyecto minimo viableProyecto minimo viable
Proyecto minimo viableAlbert2016
 
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 KJuan 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 PyOpenGLkdeespana
 

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))

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.pdfMarxx4
 
Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machosJorge Hernandez
 
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
 
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 RFrancisco Palm
 
Transparencias taller Python
Transparencias taller PythonTransparencias taller Python
Transparencias taller PythonSergio 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 javaNestor 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 PVBSistemadeEstudiosMed
 

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

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 

Último (10)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

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)