NumPy Soek Skikkings


Soek skikkings

Jy kan 'n skikking vir 'n sekere waarde soek, en die indekse wat 'n passing kry, terugstuur.

Gebruik die where()metode om 'n skikking te soek.

Voorbeeld

Vind die indekse waar die waarde 4 is:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 4, 4])

x = np.where(arr == 4)

print(x)

Die voorbeeld hierbo sal 'n tupel terugstuur:(array([3, 5, 6],)

Wat beteken dat die waarde 4 teenwoordig is by indeks 3, 5 en 6.

Voorbeeld

Vind die indekse waar die waardes ewe is:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])

x = np.where(arr%2 == 0)

print(x)

Voorbeeld

Vind die indekse waar die waardes vreemd is:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])

x = np.where(arr%2 == 1)

print(x)


Soek Gesorteer

Daar is 'n metode genoem searchsorted()wat 'n binêre soektog in die skikking uitvoer en die indeks terugstuur waar die gespesifiseerde waarde ingevoeg sal word om die soekvolgorde te handhaaf.

Daar searchsorted()word aanvaar dat die metode op gesorteerde skikkings gebruik word.

Voorbeeld

Vind die indekse waar die waarde 7 ingevoeg moet word:

import numpy as np

arr = np.array([6, 7, 8, 9])

x = np.searchsorted(arr, 7)

print(x)

Voorbeeld verduidelik: Die getal 7 moet op indeks 1 ingevoeg word om die sorteervolgorde te bly.

Die metode begin die soektog van links en gee die eerste indeks terug waar die getal 7 nie meer groter as die volgende waarde is nie.

Soek van die regterkant af

By verstek word die linkerkantste indeks teruggegee, maar ons kan gee side='right'om eerder die regtermeeste indeks terug te gee.

Voorbeeld

Vind die indekse waar die waarde 7 ingevoeg moet word, begin van regs:

import numpy as np

arr = np.array([6, 7, 8, 9])

x = np.searchsorted(arr, 7, side='right')

print(x)

Voorbeeld verduidelik: Die getal 7 moet op indeks 2 ingevoeg word om die sorteervolgorde te bly.

Die metode begin die soektog van regs en gee die eerste indeks terug waar die getal 7 nie meer minder as die volgende waarde is nie.

Veelvuldige waardes

Om vir meer as een waarde te soek, gebruik 'n skikking met die gespesifiseerde waardes.

Voorbeeld

Vind die indekse waar die waardes 2, 4 en 6 ingevoeg moet word:

import numpy as np

arr = np.array([1, 3, 5, 7])

x = np.searchsorted(arr, [2, 4, 6])

print(x)

Die terugkeerwaarde is 'n skikking: [1 2 3]bevat die drie indekse waar 2, 4, 6 in die oorspronklike skikking ingevoeg sal word om die volgorde te handhaaf.


Toets jouself met oefeninge

Oefening:

Gebruik die korrekte NumPy-metode om alle items met die waarde 4 te vind.

arr = np.array([1, 2, 3, 4, 5, 4, 4])

x = np.(arr == 4)