Exemples de comment passer une liste ou une matrice en argument d'une fonction sous python:
Table des matières
Matrice en argument d'une fonction
Avec python il est possible d'avoir une matrice comme argument d'une fonction, exemple:
>>> import numpy as np
>>> def function( x ):
... return 0.5 * x + 2
...
>>> x = np.arange(0,10,0.1)
>>> y = function(x)
>>> y
array([ 2. , 2.05, 2.1 , 2.15, 2.2 , 2.25, 2.3 , 2.35, 2.4 ,
2.45, 2.5 , 2.55, 2.6 , 2.65, 2.7 , 2.75, 2.8 , 2.85,
2.9 , 2.95, 3. , 3.05, 3.1 , 3.15, 3.2 , 3.25, 3.3 ,
3.35, 3.4 , 3.45, 3.5 , 3.55, 3.6 , 3.65, 3.7 , 3.75,
3.8 , 3.85, 3.9 , 3.95, 4. , 4.05, 4.1 , 4.15, 4.2 ,
4.25, 4.3 , 4.35, 4.4 , 4.45, 4.5 , 4.55, 4.6 , 4.65,
4.7 , 4.75, 4.8 , 4.85, 4.9 , 4.95, 5. , 5.05, 5.1 ,
5.15, 5.2 , 5.25, 5.3 , 5.35, 5.4 , 5.45, 5.5 , 5.55,
5.6 , 5.65, 5.7 , 5.75, 5.8 , 5.85, 5.9 , 5.95, 6. ,
6.05, 6.1 , 6.15, 6.2 , 6.25, 6.3 , 6.35, 6.4 , 6.45,
6.5 , 6.55, 6.6 , 6.65, 6.7 , 6.75, 6.8 , 6.85, 6.9 , 6.95])
x est ici une matrice et la fonction retourne une nouvelle matrice y. Cependant il faut faire attention si vous utilisez des fonctions mathématiques dans votre fonction, par exemple le cas suivant ne marche pas:
>>> import numpy as np
>>> import math
>>> def function( x ):
... return math.cos(x)
...
>>> y = function(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in function
TypeError: only length-1 arrays can be converted to Python scalars
car la fonction math.cos() ne gère pas les matrices. Dans ce cas il faut utiliser numpy comme ceci:
>>> import numpy as np
>>> def function( x ):
... return np.cos(x)
...
>>> y = function(x)
>>> y
array([ 1. , 0.99500417, 0.98006658, 0.95533649, 0.92106099,
0.87758256, 0.82533561, 0.76484219, 0.69670671, 0.62160997,
0.54030231, 0.45359612, 0.36235775, 0.26749883, 0.16996714,
0.0707372 , -0.02919952, -0.12884449, -0.22720209, -0.32328957,
-0.41614684, -0.5048461 , -0.58850112, -0.66627602, -0.73739372,
-0.80114362, -0.85688875, -0.90407214, -0.94222234, -0.97095817,
-0.9899925 , -0.99913515, -0.99829478, -0.98747977, -0.96679819,
-0.93645669, -0.89675842, -0.84810003, -0.79096771, -0.7259323 ,
-0.65364362, -0.57482395, -0.49026082, -0.40079917, -0.30733287,
-0.2107958 , -0.11215253, -0.01238866, 0.08749898, 0.18651237,
0.28366219, 0.37797774, 0.46851667, 0.55437434, 0.63469288,
0.70866977, 0.77556588, 0.83471278, 0.88551952, 0.92747843,
0.96017029, 0.98326844, 0.9965421 , 0.99985864, 0.99318492,
0.97658763, 0.95023259, 0.91438315, 0.86939749, 0.8157251 ,
0.75390225, 0.68454667, 0.60835131, 0.52607752, 0.43854733,
0.34663532, 0.25125984, 0.15337386, 0.05395542, -0.04600213,
-0.14550003, -0.24354415, -0.33915486, -0.43137684, -0.51928865,
-0.6020119 , -0.67872005, -0.74864665, -0.81109301, -0.86543521,
-0.91113026, -0.9477216 , -0.97484362, -0.99222533, -0.99969304,
-0.99717216, -0.98468786, -0.96236488, -0.93042627, -0.88919115])
>>>
Liste en argument d'une fonction
Il est également possible d'avoir une liste comme argument d'une fonction:
>>> l = ['coucou','hello','salut']
>>> def fonction(l):
... for i in l:
... print i
...
>>> fonction(l)
coucou
hello
salut