2017-06-24 6 views
0

Ist es möglich, die folgenden Bedingungen mit single where Bedingung in Python zu berechnen. Ich kann das nicht tun.Python: Verwenden wo Bedingung

x = np.arange(10) 

Wenn ein Element von x kleiner als 3 ist, ersetzen Sie es mit 3. Und wenn ein Element von x größer als 7 ist, ersetzen Sie es mit 7.

Mein Versuch, wie folgt, aber ich frage mich, wenn es in einer einzigen Codezeile

x= np.where(x<3 ,3,x) x = np.where(x>7,7,x)

Leider getan werden könnte, wenn es sehr einfach zu sein scheint. Aber ich habe gerade mit numpy begann

+0

Verwenden Sie einfach 'numpy.clip()'. – Divakar

Antwort

1

Sie es in einer einzigen Zeile tun mit numpy.clip()

x = np.arange(10) 
np.clip(x, 3, 7) 
print(x) 

#[3, 3, 3, 3, 4, 5, 6, 7, 7, 7] 
0

Verwendung numpy.clip()

In [115]: a = np.arange(10) 

In [116]: np.clip(a, 3, 7) 
Out[116]: array([3, 3, 3, 3, 4, 5, 6, 7, 7, 7]) 
-1
x= np.where(x<3, 3, np.where(x>7, 7, x))