Site web professionel
Ce support est vouè à être présenté à l'oral en exécutant le code au fur et à mesure avec des examples.
Pour une vraie introduction détaillée je recommande fortement le cours suivant: Cours Python 3 pour la programmation scientifique
Je recommande Spyder pour faire du code propre et réutilisable. L'accès aux variables en mémoire est un plus pour débugger.
Utilisation de #%%
pour séparer des blocks de code
txt="texte, chaine de caractère ' "
i=10 # entier
f=10.0 # flottant
txt,i,f
liste= ['liste',1,10,1e10] # contient n'importe quel type
tup= ('liste','nom','modifiable')
#tup
#liste.append('truc ajouté')
liste[1]
#liste
dic={'cle':'valeur',0:'valeur pour cle 0'}
#dic['nouvelle cle']=10
dic['cle']
dic2={'bonjour':'hello','monde':'world'}
lst1=['bonjour','monde']
for mot in lst1:
print(dic2[mot])
print(10)
print('du texte')
Formatage
txt='texte'
i=10 # entier
f=1.2e-3 # flottant
print("txt='{}',i={},f={}".format(txt,i,f))
print("txt='{:>10s}',i={:04},f={:e}".format(txt,i,f))
v=5
if v>5:
print('v>5') # block de code un tab souvent egela à 4 espaces
elif v==5: # test d'égalité ==
print('v=5')
else:
print('v<5') # Attention on ne mélange pas les espaces et les tab!
lst=range(5)
#lst=[1,10,25]
for i in lst:
print('i={}'.format(i))
On importe ces modules au début du scipt/notebook:
import numpy as np
import scipy as sp
import pylab as pl
Ctrl+i dans spyder ouvre la doc pour une fonction
Ou directement dans le terminal:
help(np.zeros)
M=np.array([[1,2,3],[4,5,6]])
M
Propriétés
M.shape # dtype,
Fonctions sum,max,min,std
#help(M.sum)
M.sum(1)
m,n=2,3 # tailles
v0=np.zeros(n)
v1=np.ones(n)
vr=np.arange(n)
va=np.random.randn(n) # vecteur aléatoire gaussien
print('shape={}'.format(v0.shape))
print('v0={}\nv1={}\nvr={}\nva={}'.format(v0,v1,vr,va))
m,n=2,3 # tailles
M0=np.zeros((m,n))
M1=np.ones((m,n))
Ma=np.random.randn(m,n) # vecteur aléatoire gaussien
print('shape={}'.format(M0.shape))
print('M0:\n{}\nM1:\n{}\nMa:\n{}'.format(M0,M1,Ma))
m,n=3,4 # tailles
M=np.arange(m*n).reshape((m,n))
print('M:\n{}'.format(M))
c=M[:,1] # selction de colonne
l=M[0,:] # selection de ligne
print('c={}\nl={}'.format(c,l))
M[:,[0,2]]
np.arange(m*n)
M=np.array([[1,2,3],[4,5,6]])
O=np.ones((2,3))
M+3*O
np.exp(M) # np.log, .....
v1=np.arange(4)
v2=np.ones(3)
v1.shape,v1,v2
v1.reshape((1,4)),v1[None,:],v1[:,None]
v1[:,None]+v2[None,:]
data=np.load('../tds_ml/digits.npz')
print(list(data))
# charge les données
x=data['x']
print(x)
M=np.array([[1,2,3],[4,5,6]])
v=np.array([1,1,1])
M.dot(v)
#v[:2].dot(M)
opérations d'algèbre linéaire dans le module np.linalg
et sp.linalg
pour les opérations plus complexes.
np.array
)vous aurez besoind des fonctions np.dot,dp.outer
.