Pythoni jadad on olemuslikult ühemõõtmelised, aga NumPy massiivid võivad olla ka mitmemõõtmelised. Näiteks kui rõhu- ja temperatuuriandurid teostavad mõõtmise iga 0,1 s tagant, siis tulemuse võib esitada kahemõõtmelise massiivina:
andmed = np.array(
((0.0, 101, 22.5),
(0.1, 103, 24.1),
(0.2, 107, 26.6),
(0.3, 111, 29.4),
(0.4, 119, 32.8),
(0.5, 128, 35.3),
(0.6, 132, 37.4))
)
Pythoni standardfunktsioon len
tagastab vaid massiivi pikkuse
esimese mõõtme sihis. Kõik mõõtmed annab (ennikuna) massiivi atribuut
shape
. Antud juhul len(andmed)
võrdub 7 ja
andmed.shape
võrdub (7, 3)
.
Kahemõõtmelise massiivi korral omab mõtet transponeerimisoperatsioon, mis
vahetab ära read ja veerud. Näiteks andmed.transpose()
ehk
andmed.T
annaks tulemuseks massiivi
((0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7),
(101, 103, 107, 111, 119, 128, 132),
(22.5, 24.1, 26.6, 29.4, 32.8, 35.3, 37.4))
Sel viisil saab mugavalt andmeveerud eraldada:
aeg, rõhk, temp = andmed.T
Mitmemõõtmelise massiivi indekseerimisel tuleb vajadusel kasutada juba
mitut (komaga eraldatud) indeksit.
Näiteks andmed[2]
osutab kolmandale reale ehk ühemõõtmelisele massiivile
(0.2, 107, 26.6)
, aga andmed[2,1]
kolmanda rea teise veeru
elemendile 107.
Viilutamise kontseptsiooni võib rakendada osaliselt või täielikult (mõnes või kõigis dimensioonides). Näiteks andmetulbad saab eraldada nii:
aeg = andmed[:, 0]
rõhk = andmed[:, 1]
temp = andmed[:, 2]
Veel näiteid: esimesed viis andmepunkti (rida) tagastab andmed[:5]
,
kaks esimest andmetulpa tagastab andmed[:,:2]
, viimase veeru tagastab
andmed[:,-1]
, viimased kaks veergu tagastab andmed[:,-2:]
,
jne.