функция sciPy stats.binned_statistic_2d () | python

| | | | | | | | | | | |

stats.binned_statistic_2d (arr1, arr2, values, statistic = ' mean ', bins = 10, range = None) вычисляет статистику значение для заданных двумерных данных.
Он работает аналогично histogram2d. Так как функция гистограммы делает интервалы, а не считает. очки в каждой корзине; эта функция вычисляет сумму, среднее значение, медиану, количество или другую статистику значений ‚Äã‚Äãдля каждого интервала.

Параметры:
arr1 : [array_like] входной массив для группирования по первому измерению.
arr2: [array_like] входной массив для группирования по второму измерению.
значения : [array_like] для расчета статистики.
статистика: статистика для вычисления {среднего, подсчета, медианы, суммы, функции}. Значение по умолчанию — среднее.
bin: [целое число или скаляры] Если bins — целое число, оно определяет количество бинов равной ширины в заданном диапазоне (по умолчанию 10). Если бины — это последовательность, она определяет края бинов.
диапазон: (с плавающей запятой, плавающая) Нижний и верхний диапазон бинов, а если не указан, диапазон от x.max () до x.min ().

Результаты: значение статистики для каждого бина; ребра ячеек по первому и второму измерению; номер корзины.

Код #1:


# stats. метод binned_statistic_2d ()

import numpy as np

from scipy import статистика


x = np.random. rand ( 10 )

y = np.random.rand ( 10 )


z = np.arange ( 10 )


печать ( "x:" , x)

print ( "y: " , y)

print ( "z:" , z)


# количество

print ( "binned_statistic_2d для подсчета:" ,

stats.binned_statistic_2d (x, y, значения ‚Äã‚Äã = z ,

статистика = ` count` , бины = [ 5 , 5 ]))

Вывод:

x:
[0,31218238 0,86791445 0,42763346 0,79798587 0,91361299 0,09005856
0,547419846 0,18973941 0,18973948 0,42763346 0,79798587 0.8083121]

y:

[0.35959238 0.69265819 0.18751529 0.98863414 0.97810927 0.24054104
0.76764562 0.60635485 0.61551806 0.63884672]

1: 2 3 4 5 6 7 8 9]

binned_statistic_2d для подсчета: BinnedStatistic2dResult (statistic = array ([[1., 0., 1., 0., 0.],
[0., 1., 0., 0., 0. ],
[1., 0., 0., 1., 0.],
[0., 0., 1., 0., 0.],
[0., 0. , 1., 1., 2.]]), x_geed = массив ([0.09005856, 0.25476945, 0.25476945, 0.58419122, 0.5841912, 0.74890211,
0.91361299]), y_edg e = Array ([0.18751529, 0.34773906, 0.50796283, 0,6681866, 0,82841037,
0,98863414]), binnumber = массив ([16, 39, 22, 40, 40, 8, 25, 10, 31, 38], dtype = int64))

Код № 2:


# stats.binned_statistic_2d() method

import numpy as np

from scipy import статистика


x = np.random.rand ( 10 )

y = np.random. rand ( 10 )

z = np.arange ( 10 )


# жадный

print ( "binned_statistic_2d for mean : " ,

stats.binned_statistic_2d ( x, y, values ​​ = z ,

статистика = ` mean ` , bins = [ 5 , 5 ]))

Вывод:

binned_statistic_2d для среднего значения: BinnedStatistic2dResult (статистика = массив ([[5., nan, 7., nan, nan],
[nan, 0., nan, nan, nan],
[2., нан, нан, 6., нан],
[нан, нан, 8., нан, нан],
[нан, нан, 9., 1., 3.5]] ), X_EDGE = Array ([0.09005856, 0.25476945, 0.25476945, 0.41948033, 0.58419122, 0.74890211, 0,74890299, 0.74890299,
0.91361299]), y_1161299]), y_1161299, 0.3473906, 0.50796283, 0.6681866, 0.82841037,
0.98863414]), Binnumber = Array ( [16, 39, 22, 40, 40, 8, 25, 10, 31, 38], dtype = int64))