Indeksi abil saab iga massiivi-sarnast objekti element-haaval lugeda/kirjutada. Pythonis indekseerimine algab nullist. Massiivi pikkuse tagastab standardfunktsioon len, seega massiivi x viimase elemendi indeks on len(x)-1. Samas indeks tohib olla ka negatiivne. Sel juhul loendamine toimub massiivi lõpust ettepoole: viimase elemendi indeks on −1, eelviimasel elemendil −2, jne. Näide:

x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
x[0] = 10
x[2] += 1
x[-1] = sqrt(x[-1])

Nende operatsioonide tulemina on järjendi sisu [10, 2, 4, 4, 5, 6, 7, 8, 3].

Tüüpiliselt massiivi-sarnased objektid toetavad ka viilutamist (slicing) üldkujul x[algus:lõpp:samm]. See tagastab alam-massiivi indeksite vahemikus algus kuni lõpp (välja arvatud) sammuga samm. Vaikimisi samm on 1, sel juhul elementide arv uues massiivis on lõpp - algus. On kasulik ette kujutada, et indeksid algus ja lõpp viitavad mitte otseselt massiivi elementidele, vaid elementide vahekohtadele, nii et massiivi algust markeeriv indeks on 0 ja massiivi lõpus len(x).

Kõik kolm parameetrit tohivad olla nii positiivsed kui ka negatiivsed ja need võib valikuliselt ära jätta. Näiteks x[:3] tagastab esimesed kolm elementi, x[:] tekitab koopia massiivist, x[-2:] tagastab viimased kaks elementi ning x[::-1] tekitab massiivi, kus elementide järjestus on vastupidine.

NumPy lubab täiendavalt massiive indekseerida tõeväärtusmassiividega:

x = np.array((1, 2, 3))
I = [True, False, True]
y = x[I]  # tulemus (1, 3)
Tõeväärtusmassiivid tekivad harilikult võrdlusoperatsioonide käigus. Näiteks kõik positiivsed arvud saab massiivist välja filtreerida nii:
x = np.array((3, -6, 4, 7, -1))
y = x[x > 0]  # tulemus (3, 4, 7)

ja kõik arvud vahemikus 0…5 nii:

x = np.array((3, -6, 4, 7, -1))
y = x[(x >= 0) & (x <= 5)]  # tulemus (3, 4)

Sellist indekseerimist tohib kasutada ka massiivi elementide ülekirjutamiseks. Näiteks mõnikord on tarvis elimineerida kõik negatiivsed elemendid massiivis (nii, et massiivi algne pikkus säilib):

x[x < 0] = 0  # tulemus (3, 0, 4, 7, 0)

Vaata lisaks

Sisukord