Examples of how to pass an array or list as an argument of a function in python:
Table of contents
Pass a matrix in a function
In python, it is possible to pass a matrix as an argument of a function, example:
>>> import numpy as np>>> def function( x ):... return 0.5 * x + 2...>>> x = np.arange(0,10,0.1)>>> y = function(x)>>> yarray([ 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 is a matrix and the function returns a new matrix y.
Note: it will return an error if a math function is used:
>>> 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 functionTypeError: only length-1 arrays can be converted to Python scalars
since the math function do not work with matrix. It is necessary to use numpy.cos(x) instead:
>>> import numpy as np>>> def function( x ):... return np.cos(x)...>>> y = function(x)>>> yarray([ 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])>>>
Pass a list in a function
It is also possible to pass a list:
>>> l = ['coucou','hello','salut']>>> def fonction(l):... for i in l:... print i...>>> fonction(l)coucouhellosalut
