SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión

Python - Tutorial
Eueung Mulyana
http://eueung.github.io/EL5244/py-tut
based on the material at CS231n@Stanford | Attribution-ShareAlike CC BY-SA
1 / 42
Agenda
1. Python Review
2. Numpy
3. SciPy
4. Matplotlib
2 / 42
 Python Review
3 / 42
Agenda
1. Python Review
Basic Data Types
Containers
Functions
Classes
2. Numpy
3. SciPy
4. Matplotlib
4 / 42
x=3
printtype(x)#Prints"<type'int'>"
printx #Prints"3"
printx+1 #Addition;prints"4"
printx-1 #Subtraction;prints"2"
printx*2 #Multiplication;prints"6"
printx**2 #Exponentiation;prints"9"
x+=1
printx #Prints"4"
x*=2
printx #Prints"8"
y=2.5
printtype(y)#Prints"<type'float'>"
printy,y+1,y*2,y**2#Prints"2.53.55.06.25"
t=True
f=False
printtype(t)#Prints"<type'bool'>"
printtandf#LogicalAND;prints"False"
printtorf #LogicalOR;prints"True"
printnott #LogicalNOT;prints"False"
printt!=f #LogicalXOR;prints"True"
Basic Data Types
Numbers
Integers and floats work as you would
expect from other languages
Does not have unary increment (x++) or
decrement (x--) operators
Other: built-in types for long integers
and complex numbers
Booleans
Python implements all of the usual
operators for Boolean logic, but uses
English words rather than symbols (&&, ||,
etc.):
5 / 42
Basic Data Types
Strings
String objects have a lot of useful methods.
hello='hello' #Stringliteralscanusesinglequotes
world="world" #ordoublequotes;itdoesnotmatter.
printhello #Prints"hello"
printlen(hello) #Stringlength;prints"5"
hw=hello+''+world #Stringconcatenation
printhw #prints"helloworld"
hw12='%s%s%d'%(hello,world,12) #sprintfstylestring
printhw12 #prints"helloworld12"
s="hello"
prints.capitalize() #Capitalizeastring;prints"Hello"
prints.upper() #Convertastringtouppercase;prints
prints.rjust(7) #Right-justifyastring,paddingwiths
prints.center(7) #Centerastring,paddingwithspaces;
prints.replace('l','(ell)') #Replaceallinstancesofone
#prints"he(ell)(ell)o"
print' world'.strip() #Stripleadingandtrailingwhitesp
6 / 42
xs=[3,1,2] #Createalist
printxs,xs[2] #Prints"[3,1,2]2"
printxs[-1] #Negativeindicescountfromtheendofthelist;prints"2"
xs[2]='foo' #Listscancontainelementsofdifferenttypes
printxs #Prints"[3,1,'foo']"
xs.append('bar')#Addanewelementtotheendofthelist
printxs #Prints
x=xs.pop() #Removeandreturnthelastelementofthelist
printx,xs #Prints"bar[3,1,'foo']"
Container Types
Python includes several built-in container
types: lists, dictionaries, sets, and tuples.
Lists
A list is the Python equivalent of an array,
but is resizeable and can contain elements
of different types.
7 / 42
Containers
Lists - Slicing
In addition to accessing list elements one at
a time, Python provides concise syntax to
access sublists; this is known as slicing
Lists - Looping
You can loop over the elements of a list.
If you want access to the index of each
element within the body of a loop, use the
built-in enumeratefunction.
nums=range(5) #rangeisabuilt-infunctionthatcreates
printnums #Prints"[0,1,2,3,4]"
printnums[2:4] #Getaslicefromindex2to4(exclusive)
printnums[2:] #Getaslicefromindex2totheend;prin
printnums[:2] #Getaslicefromthestarttoindex2(ex
printnums[:] #Getasliceofthewholelist;prints["0
printnums[:-1] #Sliceindicescanbenegative;prints["0
nums[2:4]=[8,9]#Assignanewsublisttoaslice
printnums #Prints"[0,1,8,9,4]"
animals=['cat','dog','monkey']
foranimalinanimals:
printanimal
#Prints"cat","dog","monkey",eachonitsownline.
#------
animals=['cat','dog','monkey']
foridx,animalinenumerate(animals):
print'#%d:%s'%(idx+1,animal)
#Prints"#1:cat","#2:dog","#3:monkey",eachonitsownl
8 / 42
nums=[0,1,2,3,4]
squares=[]
forxinnums:
squares.append(x**2)
printsquares #Prints[0,1,4,9,16]
nums=[0,1,2,3,4]
squares=[x**2forxinnums]
printsquares #Prints[0,1,4,9,16]
nums=[0,1,2,3,4]
even_squares=[x**2forxinnumsifx%2==0]
printeven_squares #Prints"[0,4,16]"
Containers
Lists - List Comprehensions
When programming, frequently we want
to transform one type of data into another -
> LC.
List comprehensions can also contain
conditions.
9 / 42
Containers
Dictionaries
A dictionary stores (key, value) pairs,
similar to a Mapin Java or an objectin
Javascript.
Dicts - Looping
It is easy to iterate over the keys in a
dictionary.
If you want access to keys and their
corresponding values, use the iteritems
method.
d={'cat':'cute','dog':'furry'} #Createanewdictionary
printd['cat'] #Getanentryfromadictionary;prints
print'cat'ind #Checkifadictionaryhasagivenkey;
d['fish']='wet' #Setanentryinadictionary
printd['fish'] #Prints"wet"
#printd['monkey'] #KeyError:'monkey'notakeyofd
printd.get('monkey','N/A') #Getanelementwithadefault;
printd.get('fish','N/A') #Getanelementwithadefault;
deld['fish'] #Removeanelementfromadictionary
printd.get('fish','N/A')#"fish"isnolongerakey;prints
d={'chicken':2,'cat':4,'spider':8}
foranimalind:
legs=d[animal]
print'A%shas%dlegs'%(animal,legs)
#Prints"Achickenhas2legs","Aspiderhas8legs","Acat
d={'chicken':2,'cat':4,'spider':8}
foranimal,legsind.iteritems():
print'A%shas%dlegs'%(animal,legs)
#Prints"Achickenhas2legs","Aspiderhas8legs","Acat
10 / 42
nums=[0,1,2,3,4]
even_num_to_square={x:x**2forxinnumsifx%2==0}
printeven_num_to_square #Prints"{0:0,2:4,4:16}"
Containers
Dicts - Dictionary Comprehensions
These are similar to list comprehensions,
but allow you to easily construct
dictionaries.
11 / 42
Containers
Sets
A set is an unordered collection of distinct
elements.
animals={'cat','dog'}
print'cat'inanimals #Checkifanelementisinaset;pr
print'fish'inanimals #prints"False"
animals.add('fish') #Addanelementtoaset
print'fish'inanimals #Prints"True"
printlen(animals) #Numberofelementsinaset;prints
animals.add('cat') #Addinganelementthatisalreadyi
printlen(animals) #Prints"3"
animals.remove('cat') #Removeanelementfromaset
printlen(animals) #Prints"2"
12 / 42
animals={'cat','dog','fish'}
foridx,animalinenumerate(animals):
print'#%d:%s'%(idx+1,animal)
#Prints"#1:fish","#2:dog","#3:cat"
frommathimportsqrt
nums={int(sqrt(x))forxinrange(30)}
printnums #Prints"set([0,1,2,3,4,5])"
Containers
Sets - Looping
Iterating over a set has the same syntax as
iterating over a list; however since sets are
unordered, you cannot make assumptions
about the order in which you visit the
elements of the set.
Sets - Set Comprehensions
Like lists and dictionaries, we can easily
construct sets using set comprehensions.
13 / 42
Containers
Tuples
A tuple is an (immutable) ordered list of
values. A tuple is in many ways similar to a
list.
One of the most important differences is
that tuples can be used as keys in
dictionaries and as elements of sets, while
lists cannot.
d={(x,x+1):xforxinrange(10)} #Createadictionary
t=(5,6) #Createatuple
printtype(t) #Prints"<type'tuple'>"
printd[t] #Prints"5"
printd[(1,2)] #Prints"1"
14 / 42
defsign(x):
ifx>0:
return'positive'
elifx<0:
return'negative'
else:
return'zero'
forxin[-1,0,1]:printsign(x)
#Prints"negative","zero","positive"
defhello(name,loud=False):
ifloud:
print'HELLO,%s'%name.upper()
else:
print'Hello,%s!'%name
hello('Bob')#Prints"Hello,Bob"
hello('Fred',loud=True) #Prints"HELLO,FRED!"
Functions
Python functions are defined using the def
keyword.
We will often define functions to take
optional keyword arguments.
15 / 42
Classes
The syntax for defining classes in Python is
straightforward.
classGreeter:
#Constructor
def__init__(self,name):
self.name=name #Createaninstancevariable
#Instancemethod
defgreet(self,loud=False):
ifloud:
print'HELLO,%s!'%self.name.upper()
else:
print'Hello,%s'%self.name
g=Greeter('Fred') #ConstructaninstanceoftheGreetercl
g.greet() #Callaninstancemethod;prints"Hello,
g.greet(loud=True) #Callaninstancemethod;prints"HELLO,
16 / 42
 Numpy
17 / 42
Agenda
1. Python Review
2. Numpy
Arrays
Array Indexing
Datatypes
Array Math
Broadcasting
3. SciPy
4. Matplotlib
18 / 42
importnumpyasnp
a=np.array([1,2,3]) #Createarank1array
printtype(a) #Prints"<type'numpy.ndarray'>"
printa.shape #Prints"(3,)"
printa[0],a[1],a[2] #Prints"123"
a[0]=5 #Changeanelementofthearray
printa #Prints"[5,2,3]"
b=np.array([[1,2,3],[4,5,6]]) #Createarank2array
printb.shape #Prints"(2,3)"
printb[0,0],b[0,1],b[1,0] #Prints"124"
#-----
a=np.zeros((2,2)) #Createanarrayofallzeros
printa #Prints"[[0. 0.]
# [0. 0.]]"
b=np.ones((1,2)) #Createanarrayofallones
printb #Prints"[[1. 1.]]"
c=np.full((2,2),7)#Createaconstantarray
printc #Prints"[[7. 7.]
# [7. 7.]]"
d=np.eye(2) #Createa2x2identitymatrix
printd #Prints"[[1. 0.]
# [0. 1.]]"
e=np.random.random((2,2))#Createanarrayfilledwithrandomvalues
printe #Mightprint"[[0.91940167 0.08143941]
# [0.68744134 0.87236687]]"
Numpy
Numpy is the core library for scientific
computing in Python. It provides a high-
performance multidimensional array
object (MATLAB style), and tools for
working with these arrays.
Arrays
A numpy array is a grid of values, all
of the same type, and is indexed by a
tuple of nonnegative integers.
The number of dimensions is the rank
of the array; the shape of an array is a
tuple of integers giving the size of the
array along each dimension.
We can initialize numpy arrays from
nested Python lists, and access
elements using square brackets.
Numpy also provides many functions
to create arrays.
19 / 42
Numpy
Array Indexing - Slicing
Numpy offers several ways to index into
arrays.
Similar to Python lists, numpy arrays can
be sliced.
Since arrays may be multidimensional, you
must specify a slice for each dimension of
the array.
importnumpyasnp
#Createthefollowingrank2arraywithshape(3,4)
#[[1 2 3 4]
# [5 6 7 8]
# [9101112]]
a=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
#Useslicingtopulloutthesubarrayconsistingofthefirst
#andcolumns1and2;bisthefollowingarrayofshape(2,2
#[[23]
# [67]]
b=a[:2,1:3]
#Asliceofanarrayisaviewintothesamedata,somodifyi
#willmodifytheoriginalarray.
printa[0,1] #Prints"2"
b[0,0]=77 #b[0,0]isthesamepieceofdataasa[0,1]
printa[0,1] #Prints"77"
20 / 42
importnumpyasnp
#Createthefollowingrank2arraywithshape(3,4)
#[[1 2 3 4]
# [5 6 7 8]
# [9101112]]
a=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
#Twowaysofaccessingthedatainthemiddlerowofthearray.
#Mixingintegerindexingwithslicesyieldsanarrayoflowerrank,
#whileusingonlyslicesyieldsanarrayofthesamerankasthe
#originalarray:
row_r1=a[1,:] #Rank1viewofthesecondrowofa
row_r2=a[1:2,:] #Rank2viewofthesecondrowofa
printrow_r1,row_r1.shape #Prints"[5678](4,)"
printrow_r2,row_r2.shape #Prints"[[5678]](1,4)"
#Wecanmakethesamedistinctionwhenaccessingcolumnsofanarray:
col_r1=a[:,1]
col_r2=a[:,1:2]
printcol_r1,col_r1.shape #Prints"[2 610](3,)"
printcol_r2,col_r2.shape #Prints"[[2]
# [6]
# [10]](3,1)"
Numpy
Array Indexing - Slicing
You can also mix integer indexing with
slice indexing.
However, doing so will yield an array of
lower rank than the original array.
Note that this is quite different from the
way that MATLAB handles array slicing.
21 / 42
Numpy
Array Indexing - Integer Array
Indexing
When you index into numpy arrays using
slicing, the resulting array view will
always be a subarray of the original array.
In contrast, integer array indexing allows
you to construct arbitrary arrays using the
data from another array.
importnumpyasnp
a=np.array([[1,2],[3,4],[5,6]])
#Anexampleofintegerarrayindexing.
#Thereturnedarraywillhaveshape(3,)and
printa[[0,1,2],[0,1,0]] #Prints"[145]"
#Theaboveexampleofintegerarrayindexingisequivalentto
printnp.array([a[0,0],a[1,1],a[2,0]]) #Prints"[145]
#Whenusingintegerarrayindexing,youcanreusethesame
#elementfromthesourcearray:
printa[[0,0],[1,1]] #Prints"[22]"
#Equivalenttothepreviousintegerarrayindexingexample
printnp.array([a[0,1],a[0,1]]) #Prints"[22]"
22 / 42
importnumpyasnp
a=np.array([[1,2],[3,4],[5,6]])
bool_idx=(a>2) #Findtheelementsofathatarebiggerthan2;
#thisreturnsanumpyarrayofBooleansofthesame
#shapeasa,whereeachslotofbool_idxtells
#whetherthatelementofais>2.
printbool_idx #Prints"[[FalseFalse]
# [True True]
# [True True]]"
#Weusebooleanarrayindexingtoconstructarank1array
#consistingoftheelementsofacorrespondingtotheTruevalues
#ofbool_idx
printa[bool_idx] #Prints"[3456]"
#---
#Wecandoalloftheaboveinasingleconcisestatement:
printa[a>2] #Prints"[3456]"
Numpy
Array Indexing - Boolean Array
Indexing
Boolean array indexing lets you pick out
arbitrary elements of an array.
Frequently this type of indexing is used to
select the elements of an array that satisfy
some condition.
23 / 42
Numpy
Datatypes
Every numpy array is a grid of elements of
the same type.
Numpy provides a large set of numeric
datatypes that you can use to construct
arrays.
Numpy tries to guess a datatype when you
create an array, but functions that
construct arrays usually also include an
optional argument to explicitly specify the
datatype.
importnumpyasnp
x=np.array([1,2]) #Letnumpychoosethedatatype
printx.dtype #Prints"int64"
x=np.array([1.0,2.0]) #Letnumpychoosethedatatype
printx.dtype #Prints"float64"
x=np.array([1,2],dtype=np.int64) #Forceaparticulardat
printx.dtype #Prints"int64"
24 / 42
importnumpyasnp
x=np.array([[1,2],[3,4]],dtype=np.float64)
y=np.array([[5,6],[7,8]],dtype=np.float64)
#Elementwisesum;bothproducethearray
#[[6.0 8.0]
# [10.012.0]]
printx+y
printnp.add(x,y)
#Elementwisedifference;bothproducethearray
#[[-4.0-4.0]
# [-4.0-4.0]]
printx-y
printnp.subtract(x,y)
#Elementwiseproduct;bothproducethearray
#[[5.012.0]
# [21.032.0]]
printx*y
printnp.multiply(x,y)
#Elementwisedivision;bothproducethearray
#[[0.2 0.33333333]
# [0.42857143 0.5 ]]
printx/y
printnp.divide(x,y)
#Elementwisesquareroot;producesthearray
#[[1. 1.41421356]
# [1.73205081 2. ]]
printnp.sqrt(x)
Numpy
Array Math
Basic mathematical functions operate
elementwise on arrays, and are available
both as operator overloads and as
functions in the numpy module
25 / 42
Numpy
Array Math
Note that unlike MATLAB, *is elementwise
multiplication, not matrix multiplication.
We instead use the dot function to compute
inner products of vectors, to multiply a
vector by a matrix, and to multiply
matrices.
dot is available both as a function in the
numpy module and as an instance method
of array objects
importnumpyasnp
x=np.array([[1,2],[3,4]])
y=np.array([[5,6],[7,8]])
v=np.array([9,10])
w=np.array([11,12])
#Innerproductofvectors;bothproduce219
printv.dot(w)
printnp.dot(v,w)
#Matrix/vectorproduct;bothproducetherank1array[296
printx.dot(v)
printnp.dot(x,v)
#Matrix/matrixproduct;bothproducetherank2array
#[[1922]
# [4350]]
printx.dot(y)
printnp.dot(x,y)
26 / 42
importnumpyasnp
x=np.array([[1,2],[3,4]])
printnp.sum(x) #Computesumofallelements;prints"10"
printnp.sum(x,axis=0) #Computesumofeachcolumn;prints"[46]"
printnp.sum(x,axis=1) #Computesumofeachrow;prints"[37]"
importnumpyasnp
x=np.array([[1,2],[3,4]])
printx #Prints"[[12]
# [34]]"
printx.T #Prints"[[13]
# [24]]"
#Notethattakingthetransposeofarank1arraydoesnothing:
v=np.array([1,2,3])
printv #Prints"[123]"
printv.T #Prints"[123]"
Numpy
Array Math
Numpy provides many useful functions for
performing computations on arrays; one of
the most useful is sum.
Apart from computing mathematical
functions using arrays, we frequently need
to reshape or otherwise manipulate data in
arrays.
The simplest example of this type of
operation is transposing a matrix; to
transpose a matrix, simply use the T
attribute of an array object.
27 / 42
Numpy
Broadcasting
Broadcasting is a powerful mechanism that
allows numpy to work with arrays of
different shapes when performing
arithmetic operations.
Frequently we have a smaller array and a
larger array, and we want to use the
smaller array multiple times to perform
some operation on the larger array.
For example, suppose that we want to add
a constant vector to each row of a matrix ...
importnumpyasnp
#Wewilladdthevectorvtoeachrowofthematrixx,
#storingtheresultinthematrixy
x=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
v=np.array([1,0,1])
y=np.empty_like(x) #Createanemptymatrixwiththesame
#Addthevectorvtoeachrowofthematrixxwithanexplici
foriinrange(4):
y[i,:]=x[i,:]+v
#Nowyisthefollowing
#[[2 2 4]
# [5 5 7]
# [8 810]
# [111113]]
printy
28 / 42
importnumpyasnp
#Wewilladdthevectorvtoeachrowofthematrixx,
#storingtheresultinthematrixy
x=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
v=np.array([1,0,1])
vv=np.tile(v,(4,1)) #Stack4copiesofvontopofeachother
printvv #Prints"[[101]
# [101]
# [101]
# [101]]"
y=x+vv #Addxandvvelementwise
printy #Prints"[[2 2 4]
# [5 5 7]
# [8 810]
# [111113]]"
Numpy
Broadcasting
This works... however when the matrix xis
very large, computing an explicit loop in
Python could be slow.
Note that adding the vector vto each row
of the matrix xis equivalent to forming a
matrix vvby stacking multiple copies of v
vertically, then performing elementwise
summation of xand vv.
29 / 42
Numpy
Broadcasting
Numpy broadcasting allows us to perform
this computation without actually creating
multiple copies of v. Consider this version,
using broadcasting.
The line y=x+vworks even though xhas
shape (4, 3) and vhas shape (3,) due to
broadcasting.
This line works as if vactually had shape
(4, 3), where each row was a copy of v, and
the sum was performed elementwise.
importnumpyasnp
#Wewilladdthevectorvtoeachrowofthematrixx,
#storingtheresultinthematrixy
x=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
v=np.array([1,0,1])
y=x+v #Addvtoeachrowofxusingbroadcasting
printy #Prints"[[2 2 4]
# [5 5 7]
# [8 810]
# [111113]]"
30 / 42
importnumpyasnp
#Computeouterproductofvectors
v=np.array([1,2,3]) #vhasshape(3,)
w=np.array([4,5]) #whasshape(2,)
#Tocomputeanouterproduct,wefirstreshapevtobeacolumn
#vectorofshape(3,1);wecanthenbroadcastitagainstwtoyield
#anoutputofshape(3,2),whichistheouterproductofvandw:
#[[4 5]
# [810]
# [1215]]
printnp.reshape(v,(3,1))*w
#Addavectortoeachrowofamatrix
x=np.array([[1,2,3],[4,5,6]])
#xhasshape(2,3)andvhasshape(3,)sotheybroadcastto(2,3),
#givingthefollowingmatrix:
#[[246]
# [579]]
printx+v
#.....
Broadcasting two arrays together follows
these rules:
If the arrays do not have the same
rank, prepend the shape of the lower
rank array with 1s until both shapes
have the same length.
The two arrays are said to be
compatible in a dimension if they have
the same size in the dimension, or if
one of the arrays has size 1 in that
dimension.
The arrays can be broadcast together if
they are compatible in all dimensions.
After broadcasting, each array behaves
as if it had shape equal to the
elementwise maximum of shapes of
the two input arrays.
In any dimension where one array had
size 1 and the other array had size
greater than 1, the first array behaves
as if it were copied along that
dimension.
31 / 42
Numpy
Broadcasting
Functions that support broadcasting are
known as universal functions.
Broadcasting typically makes your code
more concise and faster, so you should
strive to use it where possible.
#.....
#Addavectortoeachcolumnofamatrix
#xhasshape(2,3)andwhasshape(2,).
#Ifwetransposexthenithasshape(3,2)andcanbebroadc
#againstwtoyieldaresultofshape(3,2);transposingthi
#yieldsthefinalresultofshape(2,3)whichisthematrix
#thevectorwaddedtoeachcolumn.Givesthefollowingmatri
#[[5 6 7]
# [91011]]
print(x.T+w).T
#Anothersolutionistoreshapewtobearowvectorofshape
#wecanthenbroadcastitdirectlyagainstxtoproducethes
#output.
printx+np.reshape(w,(2,1))
#Multiplyamatrixbyaconstant:
#xhasshape(2,3).Numpytreatsscalarsasarraysofshape
#thesecanbebroadcasttogethertoshape(2,3),producingt
#followingarray:
#[[2 4 6]
# [81012]]
printx*2
32 / 42
 SciPy
33 / 42
Agenda
1. Python Review
2. Numpy
3. SciPy
Image Operations
MATLAB Files
Distance between Points
4. Matplotlib
34 / 42
fromscipy.miscimportimread,imsave,imresize
#ReadanJPEGimageintoanumpyarray
img=imread('assets/cat.jpg')
printimg.dtype,img.shape #Prints"uint8(400,248,3)"
#Wecantinttheimagebyscalingeachofthecolorchannels
#byadifferentscalarconstant.Theimagehasshape(400,248,3);
#wemultiplyitbythearray[1,0.95,0.9]ofshape(3,);
#numpybroadcastingmeansthatthisleavestheredchannelunchanged,
#andmultipliesthegreenandbluechannelsby0.95and0.9
#respectively.
img_tinted=img*[1,0.95,0.9]
#Resizethetintedimagetobe300by300pixels.
img_tinted=imresize(img_tinted,(300,300))
#Writethetintedimagebacktodisk
imsave('assets/cat_tinted.jpg',img_tinted)
SciPy
Numpy provides a high-performance
multidimensional array and basic tools to
compute with and manipulate these
arrays.
SciPy builds on this, and provides a large
number of functions that operate on numpy
arrays and are useful for different types of
scientific and engineering applications.
Image Operations
SciPy provides some basic functions to
work with images.
For example, it has functions to read
images from disk into numpy arrays, to
write numpy arrays to disk as images, and
to resize images.
35 / 42
SciPy
MATLAB Files
The functions scipy.io.loadmatand
scipy.io.savematallow you to read and
write MATLAB files.
Distance between Points
SciPy defines some useful functions for
computing distances between sets of
points.
The function scipy.spatial.distance.pdist
computes the distance between all pairs of
points in a given set.
A similar function
(scipy.spatial.distance.cdist) computes
the distance between all pairs across two
sets of points.
importnumpyasnp
fromscipy.spatial.distanceimportpdist,squareform
#Createthefollowingarraywhereeachrowisapointin2Ds
#[[01]
# [10]
# [20]]
x=np.array([[0,1],[1,0],[2,0]])
printx
#ComputetheEuclideandistancebetweenallrowsofx.
#d[i,j]istheEuclideandistancebetweenx[i,:]andx[j,:
#anddisthefollowingarray:
#[[0. 1.41421356 2.23606798]
# [1.41421356 0. 1. ]
# [2.23606798 1. 0. ]]
d=squareform(pdist(x,'euclidean'))
printd
36 / 42
 Matplotlib
37 / 42
Agenda
1. Python Review
2. Numpy
3. SciPy
4. Matplotlib
Plotting
Subplots
Images
38 / 42
importnumpyasnp
importmatplotlib.pyplotasplt
#Computethexandycoordinatesforpointsonasinecurve
x=np.arange(0,3*np.pi,0.1)
y=np.sin(x)
#Plotthepointsusingmatplotlib
plt.plot(x,y)
plt.show() #Youmustcallplt.show()tomakegraphicsappear.
importnumpyasnp
importmatplotlib.pyplotasplt
#Computethexandycoordinatesforpointsonsineandcosinecurves
x=np.arange(0,3*np.pi,0.1)
y_sin=np.sin(x)
y_cos=np.cos(x)
#Plotthepointsusingmatplotlib
plt.plot(x,y_sin)
plt.plot(x,y_cos)
plt.xlabel('xaxislabel')
plt.ylabel('yaxislabel')
plt.title('SineandCosine')
plt.legend(['Sine','Cosine'])
plt.show()
Matplotlib
Matplotlib is a plotting library.
In this section give a brief introduction to
the matplotlib.pyplotmodule, which
provides a plotting system similar to that
of MATLAB.
Plotting
The most important function in matplotlib
is plot, which allows you to plot 2D data.
With just a little bit of extra work we can
easily plot multiple lines at once, and add a
title, legend, and axis labels.
39 / 42
Matplotlib
Subplots
You can plot different things in the same
figure using the subplot function.
importnumpyasnp
importmatplotlib.pyplotasplt
#Computethexandycoordinatesforpointsonsineandcosin
x=np.arange(0,3*np.pi,0.1)
y_sin=np.sin(x)
y_cos=np.cos(x)
#Setupasubplotgridthathasheight2andwidth1,
#andsetthefirstsuchsubplotasactive.
plt.subplot(2,1,1)
#Makethefirstplot
plt.plot(x,y_sin)
plt.title('Sine')
#Setthesecondsubplotasactive,andmakethesecondplot.
plt.subplot(2,1,2)
plt.plot(x,y_cos)
plt.title('Cosine')
#Showthefigure.
plt.show()
40 / 42
importnumpyasnp
fromscipy.miscimportimread,imresize
importmatplotlib.pyplotasplt
img=imread('assets/cat.jpg')
img_tinted=img*[1,0.95,0.9]
#Showtheoriginalimage
plt.subplot(1,2,1)
plt.imshow(img)
#Showthetintedimage
plt.subplot(1,2,2)
#Aslightgotchawithimshowisthatitmightgivestrangeresults
#ifpresentedwithdatathatisnotuint8.Toworkaroundthis,we
#explicitlycasttheimagetouint8beforedisplayingit.
plt.imshow(np.uint8(img_tinted))
plt.show()
Matplotlib
Images
You can use the imshowfunction to show
images.
41 / 42

END
Eueung Mulyana
http://eueung.github.io/EL5244/py-tut
based on the material at CS231n@Stanford | Attribution-ShareAlike CC BY-SA
42 / 42

Más contenido relacionado

La actualidad más candente

Python for Linux System Administration
Python for Linux System AdministrationPython for Linux System Administration
Python for Linux System Administrationvceder
 
Python 101++: Let's Get Down to Business!
Python 101++: Let's Get Down to Business!Python 101++: Let's Get Down to Business!
Python 101++: Let's Get Down to Business!Paige Bailey
 
Introduction to Python - Training for Kids
Introduction to Python - Training for KidsIntroduction to Python - Training for Kids
Introduction to Python - Training for KidsAimee Maree Forsstrom
 
Learn python - for beginners - part-2
Learn python - for beginners - part-2Learn python - for beginners - part-2
Learn python - for beginners - part-2RajKumar Rampelli
 
AmI 2017 - Python basics
AmI 2017 - Python basicsAmI 2017 - Python basics
AmI 2017 - Python basicsLuigi De Russis
 
Learn python in 20 minutes
Learn python in 20 minutesLearn python in 20 minutes
Learn python in 20 minutesSidharth Nadhan
 
Introduction to Python and TensorFlow
Introduction to Python and TensorFlowIntroduction to Python and TensorFlow
Introduction to Python and TensorFlowBayu Aldi Yansyah
 
Advanced Python, Part 2
Advanced Python, Part 2Advanced Python, Part 2
Advanced Python, Part 2Zaar Hai
 
An Intro to Python in 30 minutes
An Intro to Python in 30 minutesAn Intro to Python in 30 minutes
An Intro to Python in 30 minutesSumit Raj
 
An introduction to Python for absolute beginners
An introduction to Python for absolute beginnersAn introduction to Python for absolute beginners
An introduction to Python for absolute beginnersKálmán "KAMI" Szalai
 
Introduction to Python programming
Introduction to Python programmingIntroduction to Python programming
Introduction to Python programmingDamian T. Gordon
 
Python于Web 2.0网站的应用 - QCon Beijing 2010
Python于Web 2.0网站的应用 - QCon Beijing 2010Python于Web 2.0网站的应用 - QCon Beijing 2010
Python于Web 2.0网站的应用 - QCon Beijing 2010Qiangning Hong
 
Python fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuanPython fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuanWei-Yuan Chang
 
java 8 Hands on Workshop
java 8 Hands on Workshopjava 8 Hands on Workshop
java 8 Hands on WorkshopJeanne Boyarsky
 

La actualidad más candente (20)

Begin with Python
Begin with PythonBegin with Python
Begin with Python
 
Python for Linux System Administration
Python for Linux System AdministrationPython for Linux System Administration
Python for Linux System Administration
 
Python 101++: Let's Get Down to Business!
Python 101++: Let's Get Down to Business!Python 101++: Let's Get Down to Business!
Python 101++: Let's Get Down to Business!
 
Introduction to Python - Training for Kids
Introduction to Python - Training for KidsIntroduction to Python - Training for Kids
Introduction to Python - Training for Kids
 
Learn python - for beginners - part-2
Learn python - for beginners - part-2Learn python - for beginners - part-2
Learn python - for beginners - part-2
 
AmI 2017 - Python basics
AmI 2017 - Python basicsAmI 2017 - Python basics
AmI 2017 - Python basics
 
Python
PythonPython
Python
 
Learn python in 20 minutes
Learn python in 20 minutesLearn python in 20 minutes
Learn python in 20 minutes
 
Introduction to Python and TensorFlow
Introduction to Python and TensorFlowIntroduction to Python and TensorFlow
Introduction to Python and TensorFlow
 
Advanced Python, Part 2
Advanced Python, Part 2Advanced Python, Part 2
Advanced Python, Part 2
 
An Intro to Python in 30 minutes
An Intro to Python in 30 minutesAn Intro to Python in 30 minutes
An Intro to Python in 30 minutes
 
An introduction to Python for absolute beginners
An introduction to Python for absolute beginnersAn introduction to Python for absolute beginners
An introduction to Python for absolute beginners
 
Functions
FunctionsFunctions
Functions
 
python codes
python codespython codes
python codes
 
Introduction to Python programming
Introduction to Python programmingIntroduction to Python programming
Introduction to Python programming
 
Python于Web 2.0网站的应用 - QCon Beijing 2010
Python于Web 2.0网站的应用 - QCon Beijing 2010Python于Web 2.0网站的应用 - QCon Beijing 2010
Python于Web 2.0网站的应用 - QCon Beijing 2010
 
Python
PythonPython
Python
 
python.ppt
python.pptpython.ppt
python.ppt
 
Python fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuanPython fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuan
 
java 8 Hands on Workshop
java 8 Hands on Workshopjava 8 Hands on Workshop
java 8 Hands on Workshop
 

Similar a Python Tutorial

第二讲 Python基礎
第二讲 Python基礎第二讲 Python基礎
第二讲 Python基礎juzihua1102
 
第二讲 预备-Python基礎
第二讲 预备-Python基礎第二讲 预备-Python基礎
第二讲 预备-Python基礎anzhong70
 
Python_Cheat_Sheet_Keywords_1664634397.pdf
Python_Cheat_Sheet_Keywords_1664634397.pdfPython_Cheat_Sheet_Keywords_1664634397.pdf
Python_Cheat_Sheet_Keywords_1664634397.pdfsagar414433
 
Python_Cheat_Sheet_Keywords_1664634397.pdf
Python_Cheat_Sheet_Keywords_1664634397.pdfPython_Cheat_Sheet_Keywords_1664634397.pdf
Python_Cheat_Sheet_Keywords_1664634397.pdfsagar414433
 
Python Workshop - Learn Python the Hard Way
Python Workshop - Learn Python the Hard WayPython Workshop - Learn Python the Hard Way
Python Workshop - Learn Python the Hard WayUtkarsh Sengar
 
Numerical tour in the Python eco-system: Python, NumPy, scikit-learn
Numerical tour in the Python eco-system: Python, NumPy, scikit-learnNumerical tour in the Python eco-system: Python, NumPy, scikit-learn
Numerical tour in the Python eco-system: Python, NumPy, scikit-learnArnaud Joly
 
Pre-Bootcamp introduction to Elixir
Pre-Bootcamp introduction to ElixirPre-Bootcamp introduction to Elixir
Pre-Bootcamp introduction to ElixirPaweł Dawczak
 
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...DRVaibhavmeshram1
 
Python Variable Types, List, Tuple, Dictionary
Python Variable Types, List, Tuple, DictionaryPython Variable Types, List, Tuple, Dictionary
Python Variable Types, List, Tuple, DictionarySoba Arjun
 
Snakes for Camels
Snakes for CamelsSnakes for Camels
Snakes for Camelsmiquelruizm
 
Python basic
Python basic Python basic
Python basic sewoo lee
 
III MCS python lab (1).pdf
III MCS python lab (1).pdfIII MCS python lab (1).pdf
III MCS python lab (1).pdfsrxerox
 

Similar a Python Tutorial (20)

第二讲 Python基礎
第二讲 Python基礎第二讲 Python基礎
第二讲 Python基礎
 
第二讲 预备-Python基礎
第二讲 预备-Python基礎第二讲 预备-Python基礎
第二讲 预备-Python基礎
 
Intro to Python
Intro to PythonIntro to Python
Intro to Python
 
Intro
IntroIntro
Intro
 
Python_Cheat_Sheet_Keywords_1664634397.pdf
Python_Cheat_Sheet_Keywords_1664634397.pdfPython_Cheat_Sheet_Keywords_1664634397.pdf
Python_Cheat_Sheet_Keywords_1664634397.pdf
 
Python_Cheat_Sheet_Keywords_1664634397.pdf
Python_Cheat_Sheet_Keywords_1664634397.pdfPython_Cheat_Sheet_Keywords_1664634397.pdf
Python_Cheat_Sheet_Keywords_1664634397.pdf
 
Python Workshop - Learn Python the Hard Way
Python Workshop - Learn Python the Hard WayPython Workshop - Learn Python the Hard Way
Python Workshop - Learn Python the Hard Way
 
Numerical tour in the Python eco-system: Python, NumPy, scikit-learn
Numerical tour in the Python eco-system: Python, NumPy, scikit-learnNumerical tour in the Python eco-system: Python, NumPy, scikit-learn
Numerical tour in the Python eco-system: Python, NumPy, scikit-learn
 
Pre-Bootcamp introduction to Elixir
Pre-Bootcamp introduction to ElixirPre-Bootcamp introduction to Elixir
Pre-Bootcamp introduction to Elixir
 
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
 
Python basic
Python basicPython basic
Python basic
 
Python Variable Types, List, Tuple, Dictionary
Python Variable Types, List, Tuple, DictionaryPython Variable Types, List, Tuple, Dictionary
Python Variable Types, List, Tuple, Dictionary
 
Intro to Python
Intro to PythonIntro to Python
Intro to Python
 
Python slide
Python slidePython slide
Python slide
 
Python 101 1
Python 101   1Python 101   1
Python 101 1
 
Snakes for Camels
Snakes for CamelsSnakes for Camels
Snakes for Camels
 
Python basic
Python basic Python basic
Python basic
 
Python-Cheat-Sheet.pdf
Python-Cheat-Sheet.pdfPython-Cheat-Sheet.pdf
Python-Cheat-Sheet.pdf
 
III MCS python lab (1).pdf
III MCS python lab (1).pdfIII MCS python lab (1).pdf
III MCS python lab (1).pdf
 
Python Day1
Python Day1Python Day1
Python Day1
 

Más de Eueung Mulyana

Hyper-Connectivity and Data Proliferation - Ecosystem Perspective
Hyper-Connectivity and Data Proliferation - Ecosystem PerspectiveHyper-Connectivity and Data Proliferation - Ecosystem Perspective
Hyper-Connectivity and Data Proliferation - Ecosystem PerspectiveEueung Mulyana
 
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated WorldIndustry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated WorldEueung Mulyana
 
Blockchain Introduction
Blockchain IntroductionBlockchain Introduction
Blockchain IntroductionEueung Mulyana
 
Bringing Automation to the Classroom: A ChatOps-Based Approach
Bringing Automation to the Classroom: A ChatOps-Based ApproachBringing Automation to the Classroom: A ChatOps-Based Approach
Bringing Automation to the Classroom: A ChatOps-Based ApproachEueung Mulyana
 
FinTech & Cryptocurrency Introduction
FinTech & Cryptocurrency IntroductionFinTech & Cryptocurrency Introduction
FinTech & Cryptocurrency IntroductionEueung Mulyana
 
Open Source Networking Overview
Open Source Networking OverviewOpen Source Networking Overview
Open Source Networking OverviewEueung Mulyana
 
ONOS SDN Controller - Clustering Tests & Experiments
ONOS SDN Controller - Clustering Tests & Experiments ONOS SDN Controller - Clustering Tests & Experiments
ONOS SDN Controller - Clustering Tests & Experiments Eueung Mulyana
 
Open stack pike-devstack-tutorial
Open stack pike-devstack-tutorialOpen stack pike-devstack-tutorial
Open stack pike-devstack-tutorialEueung Mulyana
 
ONOS SDN Controller - Introduction
ONOS SDN Controller - IntroductionONOS SDN Controller - Introduction
ONOS SDN Controller - IntroductionEueung Mulyana
 
OpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - IntroductionOpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - IntroductionEueung Mulyana
 
Android Programming Basics
Android Programming BasicsAndroid Programming Basics
Android Programming BasicsEueung Mulyana
 
Cloud Computing: Overview and Examples
Cloud Computing: Overview and ExamplesCloud Computing: Overview and Examples
Cloud Computing: Overview and ExamplesEueung Mulyana
 
selected input/output - sensors and actuators
selected input/output - sensors and actuatorsselected input/output - sensors and actuators
selected input/output - sensors and actuatorsEueung Mulyana
 
Connected Things, IoT and 5G
Connected Things, IoT and 5GConnected Things, IoT and 5G
Connected Things, IoT and 5GEueung Mulyana
 
Connectivity for Local Sensors and Actuators Using nRF24L01+
Connectivity for Local Sensors and Actuators Using nRF24L01+Connectivity for Local Sensors and Actuators Using nRF24L01+
Connectivity for Local Sensors and Actuators Using nRF24L01+Eueung Mulyana
 
NodeMCU with Blynk and Firebase
NodeMCU with Blynk and FirebaseNodeMCU with Blynk and Firebase
NodeMCU with Blynk and FirebaseEueung Mulyana
 
Trends and Enablers - Connected Services and Cloud Computing
Trends and Enablers  - Connected Services and Cloud ComputingTrends and Enablers  - Connected Services and Cloud Computing
Trends and Enablers - Connected Services and Cloud ComputingEueung Mulyana
 

Más de Eueung Mulyana (20)

FGD Big Data
FGD Big DataFGD Big Data
FGD Big Data
 
Hyper-Connectivity and Data Proliferation - Ecosystem Perspective
Hyper-Connectivity and Data Proliferation - Ecosystem PerspectiveHyper-Connectivity and Data Proliferation - Ecosystem Perspective
Hyper-Connectivity and Data Proliferation - Ecosystem Perspective
 
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated WorldIndustry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
 
Blockchain Introduction
Blockchain IntroductionBlockchain Introduction
Blockchain Introduction
 
Bringing Automation to the Classroom: A ChatOps-Based Approach
Bringing Automation to the Classroom: A ChatOps-Based ApproachBringing Automation to the Classroom: A ChatOps-Based Approach
Bringing Automation to the Classroom: A ChatOps-Based Approach
 
FinTech & Cryptocurrency Introduction
FinTech & Cryptocurrency IntroductionFinTech & Cryptocurrency Introduction
FinTech & Cryptocurrency Introduction
 
Open Source Networking Overview
Open Source Networking OverviewOpen Source Networking Overview
Open Source Networking Overview
 
ONOS SDN Controller - Clustering Tests & Experiments
ONOS SDN Controller - Clustering Tests & Experiments ONOS SDN Controller - Clustering Tests & Experiments
ONOS SDN Controller - Clustering Tests & Experiments
 
Open stack pike-devstack-tutorial
Open stack pike-devstack-tutorialOpen stack pike-devstack-tutorial
Open stack pike-devstack-tutorial
 
Basic onos-tutorial
Basic onos-tutorialBasic onos-tutorial
Basic onos-tutorial
 
ONOS SDN Controller - Introduction
ONOS SDN Controller - IntroductionONOS SDN Controller - Introduction
ONOS SDN Controller - Introduction
 
OpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - IntroductionOpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - Introduction
 
Mininet Basics
Mininet BasicsMininet Basics
Mininet Basics
 
Android Programming Basics
Android Programming BasicsAndroid Programming Basics
Android Programming Basics
 
Cloud Computing: Overview and Examples
Cloud Computing: Overview and ExamplesCloud Computing: Overview and Examples
Cloud Computing: Overview and Examples
 
selected input/output - sensors and actuators
selected input/output - sensors and actuatorsselected input/output - sensors and actuators
selected input/output - sensors and actuators
 
Connected Things, IoT and 5G
Connected Things, IoT and 5GConnected Things, IoT and 5G
Connected Things, IoT and 5G
 
Connectivity for Local Sensors and Actuators Using nRF24L01+
Connectivity for Local Sensors and Actuators Using nRF24L01+Connectivity for Local Sensors and Actuators Using nRF24L01+
Connectivity for Local Sensors and Actuators Using nRF24L01+
 
NodeMCU with Blynk and Firebase
NodeMCU with Blynk and FirebaseNodeMCU with Blynk and Firebase
NodeMCU with Blynk and Firebase
 
Trends and Enablers - Connected Services and Cloud Computing
Trends and Enablers  - Connected Services and Cloud ComputingTrends and Enablers  - Connected Services and Cloud Computing
Trends and Enablers - Connected Services and Cloud Computing
 

Último

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 

Último (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 

Python Tutorial