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]) 
print("Given array:") 
print(n_arr) 
  
print("\nReplace all elements of array which are greater than 50. to 15.50") 
n_arr[n_arr > 50.] = 15.50
  
print("New array :\n") 
print(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]]) 
print("Given array:") 
print(n_arr) 
  
print("\nReplace all elements of array which are greater than 30. to 5.25") 
n_arr[n_arr > 30.] = 5.25
  
print("New array :\n") 
print(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]]]) 
  
print("Given array:") 
print(n_arr) 
  
print("\nReplace all elements of array which are less than 10 to Nan") 
n_arr[n_arr < 10.] = np.nan 
  
print("New array :\n") 
print(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]]) 
  
print("Given array:") 
print(n_arr) 
  
print("\nReplace all elements of array which are \ 
greater than or equal to 25 to 0") 
  
print("else remains the same ") 
print(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]]) 
  
print("Given array:") 
print(n_arr) 
  
print("\nReplace all elements of array which are \ 
less than or equal to 25 with Nan") 
  
print("else with 1 ") 
print(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.