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.

Vaata lisaks

Sisukord