NumPy Filter Skikking
Filtreer skikkings
Om sommige elemente uit 'n bestaande skikking te kry en 'n nuwe skikking daaruit te skep, word filtering genoem .
In NumPy filtreer jy 'n skikking deur 'n Boolese indekslys te gebruik .
'n Boolese indekslys is 'n lys van Boolese wat ooreenstem met indekse in die skikking.
As die waarde by 'n indeks is True
dat die element in die gefiltreerde skikking vervat is, as die waarde by daardie indeks is
, word False
daardie element uitgesluit van die gefiltreerde skikking.
Voorbeeld
Skep 'n skikking van die elemente op indeks 0 en 2:
import numpy as np
arr = np.array([41, 42, 43, 44])
x = [True,
False, True, False]
newarr = arr[x]
print(newarr)
Die voorbeeld hierbo sal terugkeer [41, 43]
, hoekom?
Omdat die nuwe filter slegs die waardes bevat waar die filterskikking die waarde gehad
True
het, in hierdie geval, indeks 0 en 2.
Die skep van die Filter Array
True
In die voorbeeld hierbo het ons die en False
waardes hard gekodeer , maar die algemene gebruik is om 'n filter skikking te skep gebaseer op toestande.
Voorbeeld
Skep 'n filterskikking wat slegs waardes hoër as 42 sal terugstuur:
import numpy as np
arr = np.array([41, 42, 43, 44])
#
Create an empty list
filter_arr = []
# go through each element in
arr
for element in arr:
# if the element is higher than 42, set
the value to True, otherwise False:
if element > 42:
filter_arr.append(True)
else:
filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
Voorbeeld
Skep 'n filter skikking wat net ewe elemente van die oorspronklike skikking sal terugstuur:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
#
Create an empty list
filter_arr = []
# go through each element in
arr
for element in arr:
# if the element is completely divisble
by 2, set the value to True, otherwise False
if element % 2 == 0:
filter_arr.append(True)
else:
filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
Skep filter direk vanaf skikking
Die voorbeeld hierbo is nogal 'n algemene taak in NumPy en NumPy bied 'n goeie manier om dit aan te pak.
Ons kan die skikking direk vervang in plaas van die herhaalbare veranderlike in ons toestand en dit sal werk net soos ons dit verwag.
Voorbeeld
Skep 'n filterskikking wat slegs waardes hoër as 42 sal terugstuur:
import numpy as np
arr = np.array([41, 42, 43, 44])
filter_arr = arr
> 42
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
Voorbeeld
Skep 'n filter skikking wat net ewe elemente van die oorspronklike skikking sal terugstuur:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
filter_arr = arr
% 2 == 0
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)