Top Banner
Numpy Ming Ye 2015, modified Beerli 2017
31

Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

May 22, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

Numpy

MingYe2015,modifiedBeerli2017

Page 2: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

NumPyisfundamentalpackageforscientificcomputingwithPython

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

Page 3: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

Numpyprovides•extensionpackagetoPythonformulti-dimensionalarrays

•closertohardware(efficiency)

•designedforscientificcomputation(convenience)•Alsoknownasarrayorientedcomputing

Page 4: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

NumpyArray

Page 5: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store
Page 6: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

Arraysize

Page 7: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

2dimensionalarray

Page 8: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

3dimensionalarray

Page 9: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

Arrayinitialization

Page 10: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store
Page 11: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

3dimensionalarray

Page 12: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

Datatype

Differentdata-typesallowustostoredatamorecompactlyinmemory,butmostofthetimewesimplyworkwithfloatingpointnumbers.

Page 13: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

wecanexplicitlyspecifydata

Page 14: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

Otherdatatypes

Page 15: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

Slicesinlistvsarray

Page 16: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

reshape

Ravel:return1-Darrayofinput

unspecified(-1)valueisinferred

Page 17: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

RavelvsFlatten

Flattenreturnsaview

Ravlereturnsacopy

Page 18: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

Transposefordimensionshuffling

• IfAisanm×nmatrixthenATisannxmmatrix

Page 19: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

Assignment

PROBLEMATIC!

Page 20: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

Assignment:TWOPOSSIBLESOLUTIONS

Page 21: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

ndenumerate• Multidimensionalindexiterator.• Returnaniteratoryieldingpairsofarraycoordinatesand

values.

Page 22: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

Addingandmultiplyingelementwise

Page 23: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

Matrixmultiplication

array

matrix

Page 24: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

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

Page 25: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

Convertingnumpyarraytopythonlist

Page 26: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

Example:2DLapacianequation

Numericalsolutionusingfinitedifference

Regularloopvsvectorization

@

2

@x

2+@

2

@y

2=

xx

+

yy

= 0

Page 27: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store
Page 28: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

N=10 N=100 N=1000

loop 0.000897000000002 0.106809 6.922471

Vectorization 0.000724000000002 0.00067 0.023252

comparison

Page 29: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

ReadandWritefiles

• Loadtxt:Constructanarrayfromdatainatextorbinaryfile.

• Savetxt:saveasdelimitatedtext

Page 30: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store

30

Functions

• Functionswithscalararguments

– scalar:float,int

• Functionswitharrayarguments

– automaticallyspeedup

Page 31: Numpy - Peter Beerli · Numpy Array Array size. 2 dimensional array. 3 dimensional array. Array initialization. 3 dimensional array. Data type Different data-types allow us to store