SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
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 (Enthought python distribution $$)
• …
Calculo científico, herramientas
• Numpy
• Scipy
• Matplotlib
• Mayavi
• Ipython
• Pythonxy
• EPD (Enthought python distribution $$)
• …
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
» import matplotlib.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
keyword color
• 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’, markeredgewid
th=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: Matplotlib for python developers (https://www.packtpub.com/matplotlib-
python-development/book)

Más contenido relacionado

Similar a python CIENTIFIFO.pdf

Python y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-CorrientesPython y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-Corrientesalexis ibarra
 
Transparencias taller Python
Transparencias taller PythonTransparencias taller Python
Transparencias taller PythonSergio Soto
 
FUNDAMENTOS PYTHON.ppsx
FUNDAMENTOS PYTHON.ppsxFUNDAMENTOS PYTHON.ppsx
FUNDAMENTOS PYTHON.ppsxFernando Solis
 
Curso Python_librerias
Curso Python_libreriasCurso Python_librerias
Curso Python_libreriasCLEFormación
 
Python - Lenguaje de programación para Ciencia de Datos
Python - Lenguaje de programación para Ciencia de DatosPython - Lenguaje de programación para Ciencia de Datos
Python - Lenguaje de programación para Ciencia de DatosRoman Herrera
 
Screencast aprende python - parte 1
Screencast   aprende python - parte 1Screencast   aprende python - parte 1
Screencast aprende python - parte 1Noe Nieto
 
Análisis de datos con Python
Análisis de datos con PythonAnálisis de datos con Python
Análisis de datos con Pythongoyodiaz
 
Summer school python in spanish
Summer school python in spanishSummer school python in spanish
Summer school python in spanishAjay Ohri
 
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
 
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]RootedCON
 
Introduccion_a_Python_000000000000000.pdf
Introduccion_a_Python_000000000000000.pdfIntroduccion_a_Python_000000000000000.pdf
Introduccion_a_Python_000000000000000.pdfFranciaMascarell
 
Introducción a PSeInt.pdf
Introducción a PSeInt.pdfIntroducción a PSeInt.pdf
Introducción a PSeInt.pdfWilderHidalgo1
 

Similar a python CIENTIFIFO.pdf (20)

Python y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-CorrientesPython y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-Corrientes
 
Transparencias taller Python
Transparencias taller PythonTransparencias taller Python
Transparencias taller Python
 
FUNDAMENTOS PYTHON.ppsx
FUNDAMENTOS PYTHON.ppsxFUNDAMENTOS PYTHON.ppsx
FUNDAMENTOS PYTHON.ppsx
 
Modelo Dinamico
Modelo DinamicoModelo Dinamico
Modelo Dinamico
 
Introduccion a Python. Clase 10
Introduccion a Python. Clase 10Introduccion a Python. Clase 10
Introduccion a Python. Clase 10
 
Clase1_Python-CTIC
Clase1_Python-CTICClase1_Python-CTIC
Clase1_Python-CTIC
 
Desarrollo desoftware
Desarrollo desoftwareDesarrollo desoftware
Desarrollo desoftware
 
Curso Python_librerias
Curso Python_libreriasCurso Python_librerias
Curso Python_librerias
 
Python - Lenguaje de programación para Ciencia de Datos
Python - Lenguaje de programación para Ciencia de DatosPython - Lenguaje de programación para Ciencia de Datos
Python - Lenguaje de programación para Ciencia de Datos
 
Screencast aprende python - parte 1
Screencast   aprende python - parte 1Screencast   aprende python - parte 1
Screencast aprende python - parte 1
 
Análisis de datos con Python
Análisis de datos con PythonAnálisis de datos con Python
Análisis de datos con Python
 
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
 
Summer school python in spanish
Summer school python in spanishSummer school python in spanish
Summer school python in spanish
 
Variables1
Variables1Variables1
Variables1
 
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
 
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
 
Introduccion_a_Python_000000000000000.pdf
Introduccion_a_Python_000000000000000.pdfIntroduccion_a_Python_000000000000000.pdf
Introduccion_a_Python_000000000000000.pdf
 
Curso introductorio a matlab
Curso introductorio a matlabCurso introductorio a matlab
Curso introductorio a matlab
 
16.10.24 robots jus intro ros s4-5
16.10.24 robots jus intro ros s4-516.10.24 robots jus intro ros s4-5
16.10.24 robots jus intro ros s4-5
 
Introducción a PSeInt.pdf
Introducción a PSeInt.pdfIntroducción a PSeInt.pdf
Introducción a PSeInt.pdf
 

Más de DEMSSHILLLEONELCOUTI

Más de DEMSSHILLLEONELCOUTI (8)

tema de logica de logica de predicados para la aplicacion de inteligencia art...
tema de logica de logica de predicados para la aplicacion de inteligencia art...tema de logica de logica de predicados para la aplicacion de inteligencia art...
tema de logica de logica de predicados para la aplicacion de inteligencia art...
 
finitos.pptx
finitos.pptxfinitos.pptx
finitos.pptx
 
12. Arboles.ppt
12. Arboles.ppt12. Arboles.ppt
12. Arboles.ppt
 
SIMBOLOS PARA REALIZAR DERIVACIONES.pdf
SIMBOLOS PARA REALIZAR DERIVACIONES.pdfSIMBOLOS PARA REALIZAR DERIVACIONES.pdf
SIMBOLOS PARA REALIZAR DERIVACIONES.pdf
 
CICLO_DE_VIDA_DEL_SOFTWARE.pptx
CICLO_DE_VIDA_DEL_SOFTWARE.pptxCICLO_DE_VIDA_DEL_SOFTWARE.pptx
CICLO_DE_VIDA_DEL_SOFTWARE.pptx
 
Algoritmos.pdf
Algoritmos.pdfAlgoritmos.pdf
Algoritmos.pdf
 
Tecnologias WEB.pdf
Tecnologias WEB.pdfTecnologias WEB.pdf
Tecnologias WEB.pdf
 
RED.pptx
RED.pptxRED.pptx
RED.pptx
 

Último

REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfIrapuatoCmovamos
 
obras-hidraulicas.docxfffffffffffffffffff
obras-hidraulicas.docxfffffffffffffffffffobras-hidraulicas.docxfffffffffffffffffff
obras-hidraulicas.docxfffffffffffffffffffJefersonBazalloCarri1
 
Unidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaUnidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaSilvia García
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciaferg6120
 
Análisis de datos en acción: Optimizando el crecimiento de Cyclistic
Análisis de datos en acción: Optimizando el crecimiento de CyclisticAnálisis de datos en acción: Optimizando el crecimiento de Cyclistic
Análisis de datos en acción: Optimizando el crecimiento de CyclisticJamithGarcia1
 
Técnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalTécnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalIngrid459352
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)estebancitoherrera
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfIrapuatoCmovamos
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicaciónJonathanAntonioMaldo
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosssuser948499
 
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfLos artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfJC Díaz Herrera
 
Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...israel garcia
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitariachayananazcosimeon
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,juberrodasflores
 
Qué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problemaQué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problemaJoellyAlejandraRodrg
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfJC Díaz Herrera
 
La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresamerca6
 
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfCritica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfRodrigoBenitez38
 
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdfAnaBelindaArmellonHi
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfluisccollana
 

Último (20)

REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
 
obras-hidraulicas.docxfffffffffffffffffff
obras-hidraulicas.docxfffffffffffffffffffobras-hidraulicas.docxfffffffffffffffffff
obras-hidraulicas.docxfffffffffffffffffff
 
Unidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaUnidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y química
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescencia
 
Análisis de datos en acción: Optimizando el crecimiento de Cyclistic
Análisis de datos en acción: Optimizando el crecimiento de CyclisticAnálisis de datos en acción: Optimizando el crecimiento de Cyclistic
Análisis de datos en acción: Optimizando el crecimiento de Cyclistic
 
Técnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalTécnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dental
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicación
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datos
 
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfLos artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
 
Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
 
Qué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problemaQué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problema
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdf
 
La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresa
 
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfCritica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
 
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
 

python CIENTIFIFO.pdf

  • 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 (Enthought python distribution $$) • …
  • 5. Calculo científico, herramientas • Numpy • Scipy • Matplotlib • Mayavi • Ipython • Pythonxy • EPD (Enthought python distribution $$) • …
  • 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 » import matplotlib.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 keyword color • 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’, markeredgewid th=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’))
  • 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) – …