PDF de programación - INTRODUCCIÓN A PYTHON PARA CÁLCULO CIENTÍFICO

Imágen de pdf INTRODUCCIÓN A PYTHON PARA CÁLCULO CIENTÍFICO

INTRODUCCIÓN A PYTHON PARA CÁLCULO CIENTÍFICOgráfica de visualizaciones

Publicado el 3 de Febrero del 2017
2.490 visualizaciones desde el 3 de Febrero del 2017
2,5 MB
114 paginas
Creado hace 13a (06/03/2011)
INTRODUCCI ÓN A

PARA C ÁLCULO CIENTÍFICO

Luis Rández

Universidad de Zaragoza

6 de marzo de 2011

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

1 / 114

Instituto Universitario de Investigación y Aplicacionesde Matemáticas 1

Introducción

2 Tipos básicos

3 Controles de flujo

4 Funciones

5 Excepciones

6 Ficheros

7

ipython

8 Numpy

9 Gráficos

10 Referencias

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

2 / 114

Instituto Universitario de Investigación y Aplicacionesde Matemáticas ¿Qué es PYTHON?

PYTHON es un lenguaje de programación de tipo script creado por
Guido van Rossum a principios de los años 90, cuyo nombre proviene
del grupo ((Monty Python)). El objetivo es un lenguaje con una sintaxis
muy limpia y con un código legible.

Figura: Los humoristas británicos Monty Python

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

3 / 114

Características de PYTHON

interpretado
tipado dinámico: una misma variable puede tomar valores de distinto tipo en
distintos momentos
multiplataforma: Symbian, Unix, Windows, . . .
conexiones con otros lenguajes (FORTRAN, CUDA, . . . )
manejo de excepciones
orientado a objetos
código abierto

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

4 / 114

f2py: PYTHON & FORTRAN

! definición de la función fcn en FORTRAN
real*8 function fcn(x)
real*8 x
fcn = sin(x*cos(x**2))
return
end

unix$ f2py --fcompiler=gfortran -c -m modulo fcn.f
unix$ python
>>> import modulo
>>> modulo.fcn(5.0)
-0.97046990369101838

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

5 / 114

f2py: PYTHON & FORTRAN
subroutine fun(x,n,m,s) ! pasar vectores
real*8 x(n), s
integer i,n,m

!f2py intent(in) n,m,x,s
!f2py intent(out) s
!f2py depend(n) x
print*, n,m
do i=1,m

! x depende de n

s = s + x(i)

end do
return
end

unix$ f2py --fcompiler=gfortran -c -m modulo fun.f90
unix$ ipython
In[1]: import modulo
In[2]: t=0
In[3]: modulo.fun(array([1.,2.,3.,4.,5.,6.]),6,5,t)

Out[3]: 15.0

6

5

¿Por qué PYTHON?

desarrollo rápido de código
lenguaje de muy alto nivel
sintaxis clara y sencilla. Mantenimiento fácil
gran cantidad de librerías
lenguaje de propósito general

Figura: TiraEcol sobre PYTHON

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

7 / 114

palabras clave de PYTHON
as
continue def
else

and
class
elif
finally for
if
lambda
print
while

import
not
raise
with

assert break

del

except exec
from
in
or
return try
yield

global
is
pass

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

8 / 114

Quién usa PYTHON

Google
Yahoo
Industrial Light & Magic
Walt Disney
NASA
SGI, Inc.

...

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

9 / 114

Librerías útiles para cálculo científico

PYTHON: Para empezar

NUMPY Librería: proporciona herramientas para la generación y
manipulación de arrays.
SCIPY Librería: optimización, Fourier, cuadratura e integración
numérica, . . . (depende de NUMPY)
SYMPY Librería: cálculo simbólico
MATPLOTLIB Librería: Gráficos 2D y 3D
PIL Librería: Python Imaging Library
IPYTHON Intérprete mejorado de PYTHON

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

10 / 114

De http://www.sagemath.org
Sage is a free open-source mathematics software system licensed
under the GPL. It combines the power of many existing open-source
packages into a common PYTHON-based interface.
Mission: Creating a viable free open source alternative to Magma,
Maple, Mathematica and Matlab.

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

11 / 114

Cónsola

Intérprete básico de comandos

ubuntu-laptop:> python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" ...
>>>

Intérprete mejorado de comandos

ubuntu-laptop:> ipython
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
Type "copyright", "credits" or "license"

...

-> Introduction and overview of IPython’s features.

IPython 0.10 -- An enhanced Interactive Python.
?
%quickref -> Quick reference.
help
object?
In [1]:

-> Python’s own help system.
-> Details about ’object’. ?object also works, ...

Módulos

Los módulos son programas que amplian las funciones y clases de
PYTHON para realizar tareas específicas. Por ejemplo, el módulo os
permite usar muchas funciones del sistema operativo.

Los módulos se pueden cargar de la forma from módulo import *
o bien con import módulo o import módulo as modu. En estos
últimos casos, una función de módulo hay que llamarla
modulo.función o modu.función respectivamente, mientras que
en el primero basta con función.

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

13 / 114

Módulos

>>> import os # Modulo que provee funciones del s.o.
>>> help (os) # lista todas las funciones (q para salir)
>>> os.listdir("/home/randez") # directorio
['.cache', '.wine', '.kde', '.thunderbird', 'tmp', ...
>>> print os.getcwd() # directorio actual
/home/randez
>>> os.mkdir("ejemplo") # Crea un directorio
#
>>> import time
>>> time.strftime(" %Y- %m- %d %H: %M: %S")
'2011-01-09 20:19:23'

Modulo para trabajar con fechas/horas

# fecha y/o hora actual con formato

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

14 / 114

Tipos numéricos y lógico

entero

coma flotante

int y long

float

complejo
complex

lógico
bool

tipo entero

# L indica long, precision arbitraria

>>> i=2 #
>>> i=pow(2,130)
>>> i=2**130
1361129467683753853853498429727072845824L
>>> float(_) # _ es el equivalente a Ans en matlab
1.3611294676837539e+39
>>> a=2.1 # tipo coma flotante
>>> int(a)
2
>>> long(a)
2L
>>> z=1.5 + 3j #
>>> z=1.5 + 3*1j
(1.5+3j)

z=complex(1.5,3) tipo complejo

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

15 / 114

Tipos numéricos y lógico

>>> z.real, z.imag
(1.5, 3.0)
>>> z.conjugate()
(1.5-3j)
>>> abs(z)
3.3541019662496847
>>> z=(3>4) # tipo logico
>>> print z
False
>>> type(z)
<type 'bool'>

El tipo de una variable puede cambiar varias veces en el mismo
programa.

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

16 / 114

Operaciones aritméticas +,−,∗, /,∗∗, %

ojo! division entre enteros (fortran?)

ahora funciona

>>> 3/2 #
1
# para que no ocurra lo anterior
>>> from __future__ import division
>>> 3/2 #
1.5
>>> 11 %7 # resto de la division
4
>>> q, r=divmod(11,7) # cociente y resto
>>> print q, r
1 4
>>>

1+2

# CUIDADO CON EL SANGRADO EN PYTHON

File "<stdin>", line 1

1+2
ˆ

IndentationError: unexpected indent

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

17 / 114

Más operaciones aritméticas

Además existen en PYTHON notación compacta para modificar el valor
de una variable.

+= c += a
-= c -= a
*= c *= a
/= c /= a
%= c %= a
**= c **= a c = c**a potencia
//= c //= a c = c//a cociente entero

suma
resta
producto
cociente
resto del cociente c/a

c = c+a
c = c-a
c = c*a
c = c/a
c = c %a

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

18 / 114

Operaciones lógicas y comparaciones

Operaciones lógicas

x or y x and y not x

Comparaciones

igualdad menor o igual mayor o igual distinto

==

<=

>=

!=

>>> (3<4) or (1>0)
True
>>> not (3<4)
False
>>> 4 == 9
False
>>> 4 != 9
True

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

19 / 114

Colecciones de tipos. Listas

Una lista es una colección de objetos que pueden ser de varios tipos.

>>> lista=[1,2,2<1,1+3*1j] # se define entre corchetes
>>> type(lista)
<type 'list'>
# CUIDADO programadores fortran/matlab
>>> lista[0] # ojo! los indices empiezan en cero
1
>>> lista[-1]
(1+3j)
>>> lista[1:3] # notacion : igual que en matlab?
[2, False]
>>> lista[1:]
[2, False, (1+3j)]
>>> lista[::2]
[1, False]

# ultimo elemento

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

20 / 114

a[0] a[1] a[2] a[3]

. . . a[n-1]

índices

0

1

2

3

4

n

a[i:j] contiene los elementos entre los índices i y j y consta de
(j-i) elementos.
Propiedades

El índice de una lista empieza en 0 como en C.
Las listas son mutables a.
Los elementos de una lista pueden ser de tipos distintos.
Se pueden añadir y quitar elementos con append y pop
respectivamente.
Se pueden concatenar listas con + y ∗.
aLos objetos inmutables no pueden ser cambiados tras su definición. Todos los

tipos de números son inmutables.

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

21 / 114

# quita el elemento list[4]

>>> lista=[1,2,3,4,False]
>>> lista.pop(4)
False
>>> print lista
[1, 2, 3, 4]
>>> lista.append(True) # poner al final de la lista
>>> print lista
[1, 2, 3, 4, True]
>>> lista+lista[::-1]
[1, 2, 3, 4, True, True, 4, 3, 2, 1]
>>> lista*2
[1, 2, 3, 4, True, 1, 2, 3, 4, True]
>>> lista.sort()
>>> lista
[1, True, 2, 3, 4]
>>> lista = [ [1,2,3],[[[[1j,2]],'a']]] # anidar listas
>>> print lista
[[1, 2, 3], [[[[1j, 2]], 'a']]]

# True == 1

y

False == 0

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

22 / 114

Algunas funciones sobre listas

Dimensión de la lista L
Añade el elemento x al final de L

len(L)
L.append(x)
L2.extend(L1) Añade la lista L1 al final de la lista L2
L.insert(i,x) Inserta el elemento x en la posición dada de L
Borra la primera aparición del elemento x en L
L.remove(x)
Borra el elemento en la posición dada de la lista
L.pop([i])
L
Devuelve el índice en la lista de la primera apa-
rición del elemento x, y si no está se produce
un error.
Número de veces que aparece x en L
Ordenar la lista L
Devuelve la lista L al revés.

L.index(x)

L.count(x)
L.sort()
L.reverse()

Luis Rández (IUMA)

Introducción a PYTHON

6 de marzo de 2011

23 / 114

Variables mutables/inmutables
Al ejecutar las sentencias siguientes, las variables a y b apuntan hacia
la misma dirección de memoria. Al redefinir a=a+1 hace que PYTHON
redirija el nuevo valor de a hacia otra dirección de memoria donde
está el resultado a+1.

a = 5

b = a

a = a+1

a

a
  • Links de descarga
http://lwp-l.com/pdf2221

Comentarios de: INTRODUCCIÓN A PYTHON PARA CÁLCULO CIENTÍFICO (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad