Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1 / 14
(c) Rafael Rodrguez Galvn. Se autoriza la utilizacin de este documento segn la licencia GFDL, sin secciones invariantes, texto de portada ni de respaldo.
http://ciencialibre.forja.rediris.es
2 / 14
1 Introduccin a Python
3 / 14
Qu es Python?
Lenguaje de programacin claro y sencillo de aprender Elevada productividad (gran velocidad de desarrollo) Mltiples paradigmas: programacin orientada a objetos / estructurada / funcional Portable (Linux, Windows, Max), licencia libre Fcilmente extensible, usando C/C++, Fortran, .NET, Java,... Numerosos mdulos, en particular para clculo cientco: Comunidad de usuarios: numerosa y muy activa Bien documentado
scipy
http://www.python.org/doc http://www.scipy.org/doc
4 / 14
1 2
Ventanas de comandos
$ python $ ipython
Editores:
# recomendado !
spe eric boa-constructor Eclipse (+ python plugin, ejemplo: pydev) Emacs Vim ...
i-MATH, Santiago 2010 5 / 14
+, -, *, /, **
Parntesis para modicar la preferencia Re-editar rdenes:
, ,
(Maysculas +)
y para nueva
, , [tabulador] lnea \
Ctrl-D
quit():
>> 1+3*1.5 5.5 >> (2+3) **10 9765625 >> a = 2 >> a = " hola " >> print a , " a todos "
J. Rafael Rodrguez Galvn (OSLUCA) SMB: 2. Clculo cientco con Python i-MATH, Santiago 2010 6 / 14
Ms sobre tuplas
Para denir tuplas, se escribe una secuencia de objetos, separados por comas y entre parntesis,
( )
[ ]
>>> t = (2 , -3 ,4 , ' hola ') >>> print t (2 , -3 ,4 , ' hola ') >>> t [0] # Primer elemento 2 >>> t [ -1] # Ultimo elemento ' hola ' >>> len (t) # Longitud (n\ ' umero de elementos ) 4 >>> s = 1 ,2 ,3 ,4 # Se pueden omitir par \' entesis >>> s [2]=1 Error : ' tuple ' object doesn 't support assignment
J. Rafael Rodrguez Galvn (OSLUCA) SMB: 2. Clculo cientco con Python i-MATH, Santiago 2010 7 / 14
Listas
Similares a las tuplas, pero
su contenido es modicable
[ ]
>>> l =[2./3. , -7, 55] >>> l [0] 0.66663 >>> l [0:2] # Desde 0 hasta (2 -1) [0.66663 , -7] >>> l [0]=1 # Podemos modificarlas >>> print l [1 , -7, 55] >>> l. append (33) # A \~ nadir elementos >>> print l [1 , -7, 55 , 33] >>> l. remove (55) # Borrar elementos , ... etc .
J. Rafael Rodrguez Galvn (OSLUCA) SMB: 2. Clculo cientco con Python i-MATH, Santiago 2010 8 / 14
Bucles
Editar un chero llamado Ejecutarlo con
el siguiente contenido
puntos = [] # Lista vac \ ' ia for i in range (10) : x = 0.1* i y = x /(1+ x*x) puntos . append ([x , y ]) print puntos
La funcin
range(N)
devuelve la tupla
(0,1,...,N)
for...
comienza a partir de los dos puntos, : se delimita mediante el sangrado de las lneas (tabulador)
J. Rafael Rodrguez Galvn (OSLUCA) SMB: 2. Clculo cientco con Python i-MATH, Santiago 2010 9 / 14
Funciones, condicionales
10 / 14
Mdulos adicionales
Se pueden cambiar mdulos adicionales
1 mediante la orden
import
Existen cientos de mdulos y libreras para python
string Manejo de cadenas de caracteres time Funciones de medida del tiempo numpy Manejo de arrays para clculo cientco scipy Mtodos numricos, incluye a numpy MatPlotLib Representacin de grcas 3D mayavi2 Representacin de grcas 2D y 3D (basadas en VTK)
>>> import math >>> print ' Seno de 3: ', math . sin (3) Seno de 3: 0.14112000805986721
1
J. Rafael Rodrguez Galvn (OSLUCA) SMB: 2. Clculo cientco con Python
11 / 14
Numpy I
1 2 3
Numpy aporta a Python tipos de datos array Un array se puede construir a travs de una lista
>>> from numpy import * # Acceso a todo numpy >>> a = array ( [0 , -3, 0.5 , 7 ] ) # 1D >>> b = array ( [[ -1 , 1] , [3 , 0]] ) # 2D
1 2 3 4 5
c d e f g
= = = = =
zeros (3) zeros ([4 ,5]) ones (4) eye (5) linspace (a ,b ,n)
# # # # #
Vector de 3 ceros Matriz de ceros Vector de unos Matriz identidad Por defecto , n =50
i-MATH, Santiago 2010 12 / 14
linalg: lgebra lineal, sistemas lineales interpolate: interpolacin (lineal, spines cbicos) integrate: integracin numrica, resolucin de EDO's optimize: optimizacin, resolucin de ecuaciones no lineales,
mnimos cuadrados, simplex... matrices huecas
sparse: ...
from pylab import * x = arange ( -10 ,10 ,0.5) y = -x **2 plot (x ,y) show ()
Podemos especicar las propiedades de la curva, al estilo MATLAB
J. Rafael Rodrguez Galvn (OSLUCA) SMB: 2. Clculo cientco con Python i-MATH, Santiago 2010 14 / 14