Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array...

31
Numpy Ming Ye 2015, modified Beerli 2017

Transcript of Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array...

Numpy

MingYe2015,modifiedBeerli2017

NumPyisfundamentalpackageforscientificcomputingwithPython

• powerfulN-dimensionalarrayobject• sophisticatedfunctions• basiclinearalgebrafunctions• basicFouriertransforms• sophisticatedrandomnumbercapabilities• toolsforintegratingFortrancode.• toolsforintegratingC/C++code.

Numpyprovides•extensionpackagetoPythonformulti-dimensionalarrays

•closertohardware(efficiency)

•designedforscientificcomputation(convenience)•Alsoknownasarrayorientedcomputing

NumpyArray

Arraysize

2dimensionalarray

3dimensionalarray

Arrayinitialization

3dimensionalarray

Datatype

Differentdata-typesallowustostoredatamorecompactlyinmemory,butmostofthetimewesimplyworkwithfloatingpointnumbers.

wecanexplicitlyspecifydata

Otherdatatypes

Slicesinlistvsarray

reshape

Ravel:return1-Darrayofinput

unspecified(-1)valueisinferred

RavelvsFlatten

Flattenreturnsaview

Ravlereturnsacopy

Transposefordimensionshuffling

• IfAisanm×nmatrixthenATisannxmmatrix

Assignment

PROBLEMATIC!

Assignment:TWOPOSSIBLESOLUTIONS

ndenumerate• Multidimensionalindexiterator.• Returnaniteratoryieldingpairsofarraycoordinatesand

values.

Addingandmultiplyingelementwise

Matrixmultiplication

array

matrix

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

Convertingnumpyarraytopythonlist

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