SlideShare una empresa de Scribd logo
Python CientíficoPython-Madrid14/04/2011
Cálculo científicoEl 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 aprenderSe necesita código eficiente que ejecute rápidoCon un solo lenguaje se puede hacer prácticamente todoFLOSS!!!!! (*)(*) Free/Libre  and Open Source Software
Calculo científico, herramientasNumpyScipyMatplotlibMayaviIpythonPythonxyEPD (Enthoughtpythondistribution $$)…
Calculo científico, herramientasNumpyScipyMatplotlibMayaviIpythonPythonxyEPD (Enthoughtpythondistribution $$)…
NumpyNumpy amplía las capacidades de pythonCalculadora 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,...
NumpyOperaciones elemento a elemento son la forma de trabajar de numpy por defectoEjemplo
NumpyVectorización, permite no usar bucles, índices,..., de forma explícita (eso sucede entre bambalinas)Menos líneas de códigoMás fácil de leerEl código se parece más a notación matemáticaEl código es más ‘pythónico’
NumpyBroadcasting, 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
NumpyBroadcasting, las operaciones son elemento a elemento
NumpyBroadcasting, las operaciones son elemento a elementoa = arange(10).reshape(2,5)b = ones((5))print a, b, a+b# Si b = ones((6)) Daría errora = 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
NumpySoporta 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.
NumpyComo creamos un array con numpyConvirtiéndolo desde otra estructura de python (listas, tuplas,...)Funciones numpy (arange, zeros, empty, linspace, random, ogrid, mgrid,...)Leyendo desde disco (loadtxt, genfromtxt,…)
NumpyComo creamos un array con numpyConvirtié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 enterac = np.array(a).astype(float).astype(int)
NumpyComo creamos un array con numpyFunciones 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)…
NumpyComo creamos un array con numpyLeyendo 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
NumpyIndexingx = 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
NumpyIndexingLos 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 booleanosx[x>5]
NumpyValores especiales:NaN, Inf, -InfY operaciones con/sin ellos isnan()isinf()isfinite()nan_to_num()nansum()nanmax(), nanmin()nanargmax(), nanargmin()
NumpyY muchas cosas más que en conjunción con Scipy lo convierten en una herramienta muy poderosa
MatplotlibPermite visualizar datos de forma muy rápidaPermite obtener gráficas de calidad para publicaciones
MatplotlibLo podemos configurar con nuestras preferenciasEn linux se puede configurar el usuario, el sistemaEn Win se puede configurar el sistemaSe puede configurar la sesión>> rcParamsSe puede configurar el script
MatplotlibEl principal submódulo para dibujar es pyplotimportmatplotlib.pyplot as plt# Con pyplot podemos hacer prácticamente todo de forma sencilla
MatplotlibEl principal submódulo para dibujar es pyplotColores:Se pueden escribir letras que indican colores, nombres de colores, código hexadecimal se puede usar la keywordcolorplt.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’)
MatplotlibEl principal submódulo para dibujar es pyplotMarcadores: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)
MatplotlibEl principal submódulo para dibujar es pyplotMarcadores:Aligual que con los colores, hay muchas formas de definir los marcadores.
MatplotlibEl principal submódulo para dibujar es pyplotEtiquetas para los ejes:Se controlan mediante xticks e yticks.plt.plot(range(5))plt.xticks(range(5),(‘x1’, ’x2’, ’x3’, ’x4’, ’x5’))
MatplotlibTipos de gráficos:
MatplotlibTipos de gráficos:Histogramasy = 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)
MatplotlibSubplots (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)
MatplotlibSe puede ampliar:Basemap (para hacer mapping)mplot3d (3D)…
Enlaces y documentaciónhttp://python.g-node.org/python-autumnschool-2010/_media/pythonscientific.pdfhttp://docs.scipy.org/doc/numpy/numpy-user.pdfhttp://docs.scipy.org/doc/numpy/numpy-ref.pdfhttp://docs.scipy.org/doc/scipy/scipy-ref.pdfhttp://www.scipy.org/Cookbookhttp://matplotlib.sourceforge.net/contents.htmlLibro: Matplotlibforpythondevelopers (https://www.packtpub.com/matplotlib-python-development/book)

Más contenido relacionado

DOCX
Derivada del coseno
PPT
ANALISIS DE ALGORITMOS
PPT
Ensamblador y enlazador
PPTX
6 Principios de Programación Orientada a Objetos
PDF
Arboles de derivacion
PPTX
Funciones Internas
PPTX
Estructura de Datos - Unidad 5 metodos de ordenamiento
PDF
Funciones recursivas en C++
Derivada del coseno
ANALISIS DE ALGORITMOS
Ensamblador y enlazador
6 Principios de Programación Orientada a Objetos
Arboles de derivacion
Funciones Internas
Estructura de Datos - Unidad 5 metodos de ordenamiento
Funciones recursivas en C++

La actualidad más candente (20)

PDF
Método de Gauss Jordan
PDF
Practicas arena
PDF
Clase 14b uml_actividades
PPTX
Prepared statement
PPTX
Unidad 2 ensamblador
PPT
Java en Tiempo Real
DOCX
Metodologia para resolver problemas con Programacion orientada a Objetos
PDF
Ejercicios resueltos en el Laboratorio de estructuras struct registros
PDF
Lógica y Algoritmos 4. estructuras secuenciales y selectivas
PDF
Ejercicios resueltos de punteros 12a15
DOCX
Reporte de codigo productos medios
PPTX
Método de ordenación por inserción directa
PDF
Alice 8
PDF
Programa de Cola Estática
PPT
Algoritmos
PDF
Persistencia de datos en Java
TXT
Serie Fibonacci en C
PDF
Ejercicios Resueltos en C
PPTX
Shell exposición
DOCX
Manual de instalacion
Método de Gauss Jordan
Practicas arena
Clase 14b uml_actividades
Prepared statement
Unidad 2 ensamblador
Java en Tiempo Real
Metodologia para resolver problemas con Programacion orientada a Objetos
Ejercicios resueltos en el Laboratorio de estructuras struct registros
Lógica y Algoritmos 4. estructuras secuenciales y selectivas
Ejercicios resueltos de punteros 12a15
Reporte de codigo productos medios
Método de ordenación por inserción directa
Alice 8
Programa de Cola Estática
Algoritmos
Persistencia de datos en Java
Serie Fibonacci en C
Ejercicios Resueltos en C
Shell exposición
Manual de instalacion
Publicidad

Destacado (20)

PDF
Tutorial de numpy
PDF
Tutorial de matplotlib
PDF
Desarollando aplicaciones web en python con pruebas
ODP
Python en Android
ODP
Python para desarrollo web de ultima generación
ODP
Pintando gráficas con Python
KEY
Numpy Talk at SIAM
PDF
Introducción a PyQt
PPT
Variador de velocidad
PPTX
cam - Unidad 3 - tema 6 - controladores de velocidad
PDF
PDF
Arduino y series de datos
PPTX
INTERFAZ GRÁFICA PARA OPENCV EN PYTHON
PPTX
Inversores trifásicos
PPTX
DomoSecure – Arduino
PPTX
Introduccion fms500
PPTX
Proyecto minimo viable
PDF
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
PDF
Introducción a las librerías PyGame y PyOpenGL
PDF
Primeros Pasos en PyQt4
Tutorial de numpy
Tutorial de matplotlib
Desarollando aplicaciones web en python con pruebas
Python en Android
Python para desarrollo web de ultima generación
Pintando gráficas con Python
Numpy Talk at SIAM
Introducción a PyQt
Variador de velocidad
cam - Unidad 3 - tema 6 - controladores de velocidad
Arduino y series de datos
INTERFAZ GRÁFICA PARA OPENCV EN PYTHON
Inversores trifásicos
DomoSecure – Arduino
Introduccion fms500
Proyecto minimo viable
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Introducción a las librerías PyGame y PyOpenGL
Primeros Pasos en PyQt4
Publicidad

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

PDF
python CIENTIFIFO.pdf
PDF
PPTX
Matplotlib-equipo2 expo programacion y algoritmo.ppt.pptx
PPTX
Matplotlib-equipo2 expo programacion y algoritmo.ppt.pptx
PDF
Python + Ciencia = ♥
PDF
Clase2_Python-CTIC
PDF
[Sesion03] introduccion python
DOCX
Numpy y Scipy
PPTX
Matemáticas Aplicadas usando Python
PDF
Primeros pasos con Python: Manipulando imágenes ⟷
PPTX
Clase 3 - Introducción a la programación con Python II.pptx
PDF
Python SDK Colima
PDF
Numexpr (python madrid)
PPTX
Libreria Numpy.pptxjjnjkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
Summer school python in spanish
ODP
Análisis de datos con Python
PPTX
Clase de python para mineria-Introduccion.pptx
ODP
Python Multiuso
PDF
Introduccion a Python. Clase 9
PDF
Introduccion a Python y Data Science
python CIENTIFIFO.pdf
Matplotlib-equipo2 expo programacion y algoritmo.ppt.pptx
Matplotlib-equipo2 expo programacion y algoritmo.ppt.pptx
Python + Ciencia = ♥
Clase2_Python-CTIC
[Sesion03] introduccion python
Numpy y Scipy
Matemáticas Aplicadas usando Python
Primeros pasos con Python: Manipulando imágenes ⟷
Clase 3 - Introducción a la programación con Python II.pptx
Python SDK Colima
Numexpr (python madrid)
Libreria Numpy.pptxjjnjkkkkkkkkkkkkkkkkkkkkkkkkkkk
Summer school python in spanish
Análisis de datos con Python
Clase de python para mineria-Introduccion.pptx
Python Multiuso
Introduccion a Python. Clase 9
Introduccion a Python y Data Science

Último (20)

PPTX
Propuesta BKP servidores con Acronis1.pptx
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
Estrategia de apoyo tecnología grado 9-3
PPT
Que son las redes de computadores y sus partes
PDF
Estrategia de apoyo tecnología miguel angel solis
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
taller de informática - LEY DE OHM
PDF
clase auditoria informatica 2025.........
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
Presentación de Redes de Datos modelo osi
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
Maste clas de estructura metálica y arquitectura
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PDF
CyberOps Associate - Cisco Networking Academy
Propuesta BKP servidores con Acronis1.pptx
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
introduccion a las_web en el 2025_mejoras.ppt
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Estrategia de apoyo tecnología grado 9-3
Que son las redes de computadores y sus partes
Estrategia de apoyo tecnología miguel angel solis
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
taller de informática - LEY DE OHM
clase auditoria informatica 2025.........
Diapositiva proyecto de vida, materia catedra
Presentación de Redes de Datos modelo osi
REDES INFORMATICAS REDES INFORMATICAS.pptx
Maste clas de estructura metálica y arquitectura
Power Point Nicolás Carrasco (disertación Roblox).pptx
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
CyberOps Associate - Cisco Networking Academy

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