Skip to content

NumPy: Begrenzung von ndarray-Werten auf min und max mit clip()

Python

Um die Werte des NumPy-Arrays ndarray auf einen bestimmten Bereich zu begrenzen, verwenden SIE die Methode np.clip() oder clip() von ndarray.

Durch Angabe der Mindest- und Höchstwerte im Argument werden sterben außerhalb des Bereichs liegenden Werte durch this Werte ersetzt.

Dies ist nützlich, wenn Sie die Werte auf einen Bereich wie 0,0 ~ 1,0 oder 0 ~ 255 begrenzen möchten.

Dieser Artikel hat folgenden Inhalt.

  • Verwendung von np.clip()
  • Verwenden Sie also die Methode clip() von ndarray

Verwendung von np.clip()

Geben Sie das Zielarray ndarray im ersten Argument a, den Minimalwert im zweiten Argument a_min und den Maximalwert im dritten Argument a_max an.

import numpy as np

a = np.arange(10)
print(a)
# [0 1 2 3 4 5 6 7 8 9]

print(np.clip(a, 2, 7))
# [2 2 2 3 4 5 6 7 7 7]

Verwenden Sie None, wenn Sie nur einen der Minimal- und Maximalwerte angeben möchten. Es kann nicht weggelassen werden.

print(np.clip(a, None, 7))
# [0 1 2 3 4 5 6 7 7 7]

print(np.clip(a, 2, None))
# [2 2 2 3 4 5 6 7 8 9]

# print(np.clip(a, 2))
# TypeError: clip() missing 1 required positional argument: 'a_max'

Das abgeschnittene Ndarray wird wiederhergestellt, und das ursprüngliche Ndarray bleibt unverändert.

a_clip = np.clip(a, 2, 7)
print(a_clip)
# [2 2 2 3 4 5 6 7 7 7]

print(a)
# [0 1 2 3 4 5 6 7 8 9]

Verwenden Sie also die Methode clip() von ndarray

Die Methode clip() von ndarray ist fast identisch.

Geben Sie im ersten Argument min den Minimalwert und im zweiten Argument max den Maximalwert an.

print(a.clip(2, 7))
# [2 2 2 3 4 5 6 7 7 7]

print(a.clip(None, 7))
# [0 1 2 3 4 5 6 7 7 7]

print(a.clip(2, None))
# [2 2 2 3 4 5 6 7 8 9]

Im Gegensatz zu np.clip() can min und max weggelassen Werden, da None als Standardwert für min und max gesetzt ist.

Beachten Sie, dass sich die Argumentnamen geringfügig von np.clip() unterscheiden, seien SIE also vorsichtig, SIE SIE ALS Schlüsselwortargumente angeben.

print(a.clip(2))
# [2 2 2 3 4 5 6 7 8 9]

print(a.clip(min=2))
# [2 2 2 3 4 5 6 7 8 9]

print(a.clip(max=7))
# [0 1 2 3 4 5 6 7 7 7]

Wie bei np.clip() wird das abgeschnittene ndarray wiederhergestellt und das ursprüngliche ndarray bleibt unverändert.

a_clip = a.clip(2, 7)
print(a_clip)
# [2 2 2 3 4 5 6 7 7 7]

print(a)
# [0 1 2 3 4 5 6 7 8 9]