NumPy / SciPy and Array-Oriented Computing Travis Oliphant, PhD PyCodeConf
Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array...
Transcript of Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array...
NumPyisfundamentalpackageforscientificcomputingwithPython
• powerfulN-dimensionalarrayobject• sophisticatedfunctions• basiclinearalgebrafunctions• basicFouriertransforms• sophisticatedrandomnumbercapabilities• toolsforintegratingFortrancode.• toolsforintegratingC/C++code.
Numpyprovides•extensionpackagetoPythonformulti-dimensionalarrays
•closertohardware(efficiency)
•designedforscientificcomputation(convenience)•Alsoknownasarrayorientedcomputing
Datatype
Differentdata-typesallowustostoredatamorecompactlyinmemory,butmostofthetimewesimplyworkwithfloatingpointnumbers.
ndenumerate• Multidimensionalindexiterator.• Returnaniteratoryieldingpairsofarraycoordinatesand
values.
24
Manyoperationsworkwitharrays
• abs,cos,sin,...
• accumulate,all
• append,arange,argsort,array_split,matrix,
• asmatrix(notcopied)
• average,copy,cross,delete
• linearalgebra:diagonal,dot,eye,fill,fix,flat(iterator),flatten,indices,inner,insert,item,linspace,mat,maximum,ndim,outer,pinv,repeat,reshape,shape,swapaxis,tile,tolist,transpose,zeros
Example:2DLapacianequation
Numericalsolutionusingfinitedifference
Regularloopvsvectorization
@
2
@x
2+@
2
@y
2=
xx
+
yy
= 0
N=10 N=100 N=1000
loop 0.000897000000002 0.106809 6.922471
Vectorization 0.000724000000002 0.00067 0.023252
comparison
ReadandWritefiles
• Loadtxt:Constructanarrayfromdatainatextorbinaryfile.
• Savetxt:saveasdelimitatedtext
30
Functions
• Functionswithscalararguments
– scalar:float,int
• Functionswitharrayarguments
– automaticallyspeedup