Ersetzen Sie NumPy-Array-Elemente, die die angegebene Bedingung nicht erfüllen
Manchmal möchten wir im Numpy-Array bestimmte Bedingungen anwenden, um einige Werte herauszufiltern und sie dann entweder zu ersetzen oder zu entfernen. Die Bedingungen können so sein, als ob bestimmte Werte größer oder kleiner als eine bestimmte Konstante sind, und dann alle diese Werte durch eine andere Zahl ersetzen.
Hierfür können wir relationale Operatoren wie '>', '<' usw. und andere Funktionen wie numpy.where() verwenden.
Methode 1: Verwenden relationaler Operatoren
Beispiel 1: In 1-D Numpy Array
import
numpy as np
n_arr
=
np.array([
75.42436315
,
42.48558583
,
60.32924763
])
(
"Given array:"
)
(n_arr)
(
"\nReplace all elements of array which are greater than 50. to 15.50"
)
n_arr[n_arr >
50.
]
=
15.50
(
"New array :\n"
)
(n_arr)
Ausgabe:
In der obigen Frage ersetzen wir alle Werte größer als 50 durch 15,50 in einem 1-D-Numpy-Array.
Beispiel 2 (A): In einem 2-D-Numpy-Array
import
numpy as np
n_arr
=
np.array([[
45.42436315
,
52.48558583
,
10.32924763
],
[
5.7439979
,
50.58220701
,
25.38213418
]])
(
"Given array:"
)
(n_arr)
(
"\nReplace all elements of array which are greater than 30. to 5.25"
)
n_arr[n_arr >
30.
]
=
5.25
(
"New array :\n"
)
(n_arr)
Ausgabe:
In der obigen Frage ersetzen wir alle Werte größer als 30 durch 5,25 in einem 2-D-Numpy-Array.
Beispiel 3: In 3-D Numpy Array
import
numpy as np
n_arr
=
np.array([[[
11
,
25.5
,
70.6
], [
30.9
,
45.5
,
55.9
], [
20.7
,
45.8
,
7.1
]],
[[
50.1
,
65.9
,
8.2
], [
70.4
,
85.8
,
10.3
], [
11.3
,
22.2
,
33.6
]],
[[
19.9
,
69.7
,
36.8
], [
1.2
,
5.1
,
24.4
], [
4.9
,
20.8
,
96.7
]]])
(
"Given array:"
)
(n_arr)
(
"\nReplace all elements of array which are less than 10 to Nan"
)
n_arr[n_arr <
10.
]
=
np.nan
(
"New array :\n"
)
(n_arr)
Ausgabe:
In der obigen Frage ersetzen wir alle Werte unter 10 durch Nan in einem 3-D-Numpy-Array.
Methode 2: Verwenden von numpy.where()
Es gibt die Indizes von Elementen in einem Eingabearray zurück, in dem die angegebene Bedingung erfüllt ist.
Beispiel 1:
import
numpy as np
n_arr
=
np.array([[
45
,
52
,
10
],
[
1
,
5
,
25
]])
(
"Given array:"
)
(n_arr)
("\nReplace
all
elements of array which are \
greater than
or
equal to
25
to
0
")
(
"else remains the same "
)
(np.where(n_arr >
=
25
,
0
, n_arr))
Ausgabe:
In der obigen Frage ersetzen wir alle Werte größer oder gleich 25 durch 0, ansonsten bleiben sie gleich.
Beispiel 2:
import
numpy as np
n_arr
=
np.array([[
45
,
52
,
10
],
[
1
,
5
,
25
],
[
50
,
40
,
81
]])
(
"Given array:"
)
(n_arr)
("\nReplace
all
elements of array which are \
less than
or
equal to
25
with Nan")
(
"else with 1 "
)
(np.where(n_arr <
=
25
, np.nan,
1
))
Ausgabe:
In der obigen Frage ersetzen wir alle Werte kleiner oder gleich 25 durch Nan, ansonsten durch 1.