Ještě než začnene ujistěte se že víte, jak to funguje s importem knihoven.
První zásadou, kterou si musíme osvojit je, že se vždy pracuje se seznamem (řadou) čísel.
Pracuje se s datovým typem numpy.array
.
a = array([5,8,12,13,100,18,74])
print a
print "max:", a.max()
print "min: ", a.min()
print u"součet:", a.sum()
print u'dékla:', a.size
vytvoří řadu čísel tak, aby jich byl požadovaný počet:
linspace(2,5,9)
linspace(0,5,4)
linspace(0,1,20)
vytvoří řadu čísel, tak aby byl mezi nimi požadovaný rozestup. Zároveň se číslo, které je uvedeno jako horní mez v seznamu neoběví.
arange(5)
arange(3,10)
arange(10,20,0.2)
vytvoří řadu nul nebo jedniček. Nezdá se to ale může to být někdy velice užitečné.
zeros(5)
ones(20)
S datovým typpem numpy.array
lze pracovat jako
s klasickým python senzamem,
ale je možné provádět i mnohem
pokročilejší operace.
t=linspace(0,10,11)
print t
print t[1:5]
print t[-1]
print t[-2]
print t[-3]
print t[5:-3]
Ve výřezech lze prvky i přeskakovat:
t=arange(0,100,1)
print t
print t[0:20:3]
print t[::9]
Výřez je možné použít i k přiřazení:
t[::3]=0
print t
t[20:]=7
print t
Pokud vás to zajímá víc, podívejte se na knihovnu numexpr.
To co bychom v čistém Pythonu museli zdlouhavě řešit podmíkami a vnořenými cykly je pro numpy.array
hračka:
Pokud provedeme nějakou matematickou operaci, provádí se vždy s dvěma prvky, které jsou v seznamech na stejné pozici.
Například u sčítání se sečte první prvek s první, druhý s druhým, třetí s třetím atd.
a=array([1.,2.,3.,4.])
b=array([9.,8.,7.,6.])
print a
print b
print a+b
print a*b
print a/b
print a
print a+10
print b
print b*3
print a
print a**2
print a**3
Fungují samozřejmě běžné matematické funkce:
sin
cos
tan
log
-- přirozený logaritmuslog10
-- dekadický logaritmusexp
-- exponencíální funkcePokud mám řadu hodnot na ose x a řadu hodnot na ose y, můžu je vinést do souřadnicového systému.
K tomuto účelu slouží funkce plot()
.
x=linspace(0.1,4,20)
y=exp(x)/6.
z=log(x)
s=5*sin(x)
plot(x,y, 'x-',x,z, 'x-', x,s,'x-')
grid()