stats.binned_statistic_2d (arr1, arr2, values, statistic = & # 39; mean & # 39 ;, bins = 10, range = None)
calculates the statistic value for given two-dimensional data.
It works in a similar way to histogram2d. Since the histogram function makes bins and counts no. points in each basket; this function calculates the sum, average, mean -median-mode-in-python-without-libraries/">median, count, or other statistics of values ​​for each bin.
Parameters:
arr1: [array_like] input array to be binned along the first dimension.
arr2: [array_like] input array to be binned along the second dimension.
values: [array_like] on which stats to be calculated.
statistics: Statistics to compute { mean , count, mean -median-mode-in-python-without-libraries/">median, sum, function}. Default is mean .
bin: [int or scalars] If bins is an int, it defines the number of equal-width bins in the given range (10, by default). If bins is a sequence, it defines the bin edges.
range: (float, float) Lower and upper range of the bins and if not provided, range is from x.max () to x.min ().Results: Statistics value for each bin; bin edges along first and second dimension; bin number.
Code # 1:
|
Output:
x:
[0.31218238 0.86791445 0.42763346 0.79798587 0.91361299 0.09005856
0.54419846 0.18973948 0.67016378 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 for count: 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_edge = array ([0.09005856, 0.25476945, 0.41948033, 0.58419122, 0.74890211,
0.91361299 ]), y_edg e = array ([0.18751529, 0.34773906, 0.50796283, 0.6681866, 0.82841037,
0.98863414]), binnumber = array ([16, 39, 22, 40, 40, 8, 25, 10, 31, 38], dtype = int64))
Code # 2:
# stats.binned_statistic_2d () method
import
numpy as np
from
scipy
import
stats
x
=
np.random.rand (
10
)
y
=
np.random.rand (
10
)
z
=
np.arange (
10
)
# greedy
print
(
"binned_statistic_2d for mean : "
,
stats.binned_statistic_2d ( x, y, values ​​
=
z,
statistic
=
’ mean ’
, bins
=
[
5
,
5
]))
Output:
binned_statistic_2d for mean : BinnedStatistic2dResult (statistic = array ([[5., nan, 7., nan, nan],
[nan, 0., nan, nan, nan],
[2., nan, nan, 6., nan],
[nan, nan, 8., nan, nan],
[nan, nan, 9., 1., 3.5]]), x_edge = array ([0.09005856, 0.25476945, 0.41948033, 0.58419122, 0.74890211,
0.91361299]), y_edge = array ([0.18751529, 0.34773906, 0.50796283, 0.6681866, 0.82841037,
0.98863414]), binnumber = array ([16, 39, 22, 40, 40, 8, 25, 10, 31, 38], dtype = int64))