scipy.stats.

trim1#

scipy.stats.trim1(a, proportiontocut, tail='right', axis=0)[Quelle]#

Schneidet einen Anteil von EINEM Ende der übergebenen Array-Verteilung ab.

Wenn proportiontocut = 0,1 ist, werden die "linksesten" oder "rechtsesten" 10% der Werte abgeschnitten. Die niedrigsten oder höchsten Werte werden (je nach tail) abgeschnitten. Weniger wird abgeschnitten, wenn der Anteil zu einem nicht-ganzzahligen Schnittindex führt (d.h. konservativ wird weniger als proportiontocut abgeschnitten).

Parameter:
aarray_like

Eingabearray.

proportiontocutfloat

Anteil, der von der 'linken' oder 'rechten' Seite der Verteilung abgeschnitten werden soll.

tail{‘left’, ‘right’}, optional

Standardmäßig 'right'.

axisint oder None, optional

Achse, entlang der die Daten getrimmt werden sollen. Standard ist 0. Wenn None, wird über das gesamte Array a berechnet.

Rückgabe:
trim1ndarray

Getrimmte Version des Arrays a. Die Reihenfolge des getrimmten Inhalts ist undefiniert.

Beispiele

Erstellen Sie ein Array mit 10 Werten und trimmen Sie 20 % seiner niedrigsten Werte

>>> import numpy as np
>>> from scipy import stats
>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> stats.trim1(a, 0.2, 'left')
array([2, 4, 3, 5, 6, 7, 8, 9])

Beachten Sie, dass die Elemente des Eingabearrays nach Wert getrimmt werden, das Ausgabearray jedoch nicht unbedingt sortiert ist.

Der zu trimmende Anteil wird auf die nächste ganze Zahl abgerundet. Zum Beispiel wird beim Trimmen von 25 % der Werte aus einem Array mit 10 Werten ein Array mit 8 Werten zurückgegeben.

>>> b = np.arange(10)
>>> stats.trim1(b, 1/4).shape
(8,)

Mehrdimensionale Arrays können entlang jeder Achse oder über das gesamte Array getrimmt werden

>>> c = [2, 4, 6, 8, 0, 1, 3, 5, 7, 9]
>>> d = np.array([a, b, c])
>>> stats.trim1(d, 0.8, axis=0).shape
(1, 10)
>>> stats.trim1(d, 0.8, axis=1).shape
(3, 2)
>>> stats.trim1(d, 0.8, axis=None).shape
(6,)