binned_statistic_2d#
- scipy.stats.binned_statistic_2d(x, y, values, statistic='mean', bins=10, range=None, expand_binnumbers=False)[Quelle]#
Berechnet eine bidimensionale gebinnte Statistik für einen oder mehrere Datensätze.
Dies ist eine Verallgemeinerung der Funktion histogram2d. Ein Histogramm teilt den Raum in Bins auf und gibt die Anzahl der Punkte in jedem Bin zurück. Diese Funktion ermöglicht die Berechnung der Summe, des Mittels, des Medians oder anderer Statistiken der Werte (oder Werte-Mengen) innerhalb jedes Bins.
- Parameter:
- x(N,) array_like
Eine Sequenz von Werten, die entlang der ersten Dimension gebinnt werden sollen.
- y(N,) array_like
Eine Sequenz von Werten, die entlang der zweiten Dimension gebinnt werden sollen.
- values(N,) array_like oder Liste von (N,) array_like
Die Daten, auf denen die Statistik berechnet wird. Dies muss die gleiche Form wie x haben, oder eine Liste von Sequenzen – jede mit der gleichen Form wie x. Wenn values eine solche Liste ist, wird die Statistik für jede unabhängig berechnet.
- statisticstring oder callable, optional
Die zu berechnende Statistik (Standard ist 'mean'). Die folgenden Statistiken sind verfügbar
‘mean’ : berechnet den Mittelwert der Werte für Punkte innerhalb jedes Bins. Leere Bins werden durch NaN dargestellt.
‘std’ : berechnet die Standardabweichung innerhalb jedes Bins. Dies wird implizit mit ddof=0 berechnet.
‘median’ : berechnet den Median der Werte für Punkte innerhalb jedes Bins. Leere Bins werden durch NaN dargestellt.
‘count’ : berechnet die Anzahl der Punkte innerhalb jedes Bins. Dies ist identisch mit einem ungewichteten Histogramm. Das values-Array wird nicht referenziert.
‘sum’ : berechnet die Summe der Werte für Punkte innerhalb jedes Bins. Dies ist identisch mit einem gewichteten Histogramm.
‘min’ : berechnet das Minimum der Werte für Punkte innerhalb jedes Bins. Leere Bins werden durch NaN dargestellt.
‘max’ : berechnet das Maximum der Werte für Punkte innerhalb jedes Bins. Leere Bins werden durch NaN dargestellt.
function : eine benutzerdefinierte Funktion, die ein 1D-Array von Werten entgegennimmt und eine einzelne numerische Statistik zurückgibt. Diese Funktion wird für die Werte in jedem Bin aufgerufen. Leere Bins werden durch function([]) dargestellt, oder durch NaN, wenn diese einen Fehler zurückgibt.
- binsint oder [int, int] oder array_like oder [array, array], optional
Die Bin-Spezifikation
die Anzahl der Bins für die beiden Dimensionen (nx = ny = bins),
die Anzahl der Bins in jeder Dimension (nx, ny = bins),
die Bin-Kanten für die beiden Dimensionen (x_edge = y_edge = bins),
die Bin-Kanten in jeder Dimension (x_edge, y_edge = bins).
Wenn die Bin-Kanten angegeben sind, ist die Anzahl der Bins (nx = len(x_edge)-1, ny = len(y_edge)-1).
- range(2,2) array_like, optional
Die linkesten und rechtesten Kanten der Bins entlang jeder Dimension (wenn nicht explizit in den bins-Parametern angegeben): [[xmin, xmax], [ymin, ymax]]. Alle Werte außerhalb dieses Bereichs werden als Ausreißer betrachtet und nicht im Histogramm gezählt.
- expand_binnumbersbool, optional
‘False’ (Standard): Der zurückgegebene binnumber ist ein Array der Form (N,) mit linearisierten Bin-Indizes. ‘True’: Der zurückgegebene binnumber wird in ein ndarray der Form (2,N) "entpackt", wobei jede Zeile die Bin-Nummern in der entsprechenden Dimension angibt. Siehe den zurückgegebenen Wert binnumber und den Abschnitt Beispiele.
Hinzugefügt in Version 0.17.0.
- Rückgabe:
- statistic(nx, ny) ndarray
Die Werte der ausgewählten Statistik in jedem zweidimensionalen Bin.
- x_edge(nx + 1) ndarray
Die Bin-Kanten entlang der ersten Dimension.
- y_edge(ny + 1) ndarray
Die Bin-Kanten entlang der zweiten Dimension.
- binnumber(N,) Array von ints oder (2,N) ndarray von ints
Dies weist jedem Element von sample eine ganze Zahl zu, die den Bin darstellt, in den diese Beobachtung fällt. Die Darstellung hängt vom Argument expand_binnumbers ab. Siehe Hinweise für Details.
Siehe auch
Hinweise
Binkanten: Alle Bins außer dem letzten (rechtesten) sind halboffen. Das heißt, wenn bins
[1, 2, 3, 4]ist, dann ist der erste Bin[1, 2)(einschließlich 1, aber ausschließlich 2) und der zweite[2, 3). Der letzte Bin ist jedoch[3, 4], was 4 *einschließt*.binnumber: Dieses zurückgegebene Argument weist jedem Element von sample eine ganze Zahl zu, die den Bin darstellt, zu dem es gehört. Die Darstellung hängt vom Argument expand_binnumbers ab. Wenn 'False' (Standard): Der zurückgegebene binnumber ist ein Array der Form (N,) mit linearisierten Indizes, die jedes Element von sample seinem entsprechenden Bin zuordnen (unter Verwendung der Zeilen-Major-Reihenfolge). Beachten Sie, dass die zurückgegebenen linearisierten Bin-Indizes für ein Array mit zusätzlichen Bins an den äußeren Kanten verwendet werden, um Werte außerhalb der definierten Bin-Grenzen zu erfassen. Wenn 'True': Der zurückgegebene binnumber ist ein ndarray der Form (2,N), wobei jede Zeile die Bin-Platzierungen für jede Dimension angibt. In jeder Dimension bedeutet eine Bin-Nummer von i, dass der entsprechende Wert zwischen (D_edge[i-1], D_edge[i]) liegt, wobei 'D' entweder 'x' oder 'y' ist.
Hinzugefügt in Version 0.11.0.
Beispiele
>>> from scipy import stats
Berechnen Sie die Zählungen mit expliziten Bin-Kanten
>>> x = [0.1, 0.1, 0.1, 0.6] >>> y = [2.1, 2.6, 2.1, 2.1] >>> binx = [0.0, 0.5, 1.0] >>> biny = [2.0, 2.5, 3.0] >>> ret = stats.binned_statistic_2d(x, y, None, 'count', bins=[binx, biny]) >>> ret.statistic array([[2., 1.], [1., 0.]])
Die Bins, in die jedes Sample platziert wird, werden durch den zurückgegebenen Parameter binnumber angegeben. Standardmäßig sind dies die linearisierten Bin-Indizes
>>> ret.binnumber array([5, 6, 5, 9])
Die Bin-Indizes können auch mithilfe des Parameters expand_binnumbers in separate Einträge für jede Dimension erweitert werden
>>> ret = stats.binned_statistic_2d(x, y, None, 'count', bins=[binx, biny], ... expand_binnumbers=True) >>> ret.binnumber array([[1, 1, 1, 2], [1, 2, 1, 1]])
Was zeigt, dass die ersten drei Elemente in xbin 1 und das vierte in xbin 2 gehören; und so weiter für y.