sciPy stats.binned_statistic_dd() function | Python

`stats.binned_statistic_dd(arr, values, statistic='mean', bins=10, range=None) ` function computes the binned statistics value for the given two dimensional data.
It works similar to histogram2d. As histogram function makes bins and counts the no. of points in each bin; this function computes the sum, mean, median, count or other statistics of the values for each bin.

Parameters :
arr : [array_like] Data to histogram passed as (N, D) array
values : [array_like]on which stats to be calculated.
statistics : Statistics to compute {mean, count, 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; bin number.

Code #1 :

 `# stats.binned_statistic_dd() method  ` `import` `numpy as np ` `from` `scipy ``import` `stats ` ` `  `x ``=` `np.ones(``10``) ` `y ``=` `np.ones(``10``) ` ` `  `print` `(``"x : \n"``, x) ` `print` `(``"\ny : \n"``, y) ` ` `  `print` `(``"\nbinned_statistic_2d for count : "``,  ` `       ``stats.binned_statistic_dd([x, y], ``None``, ``'count'``, bins ``=` `3``)) `

Output :

x :
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

y :
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

binned_statistic_2d for count : BinnedStatisticddResult(statistic=array([[ 0., 0., 0.],
[ 0., 10., 0.],
[ 0., 0., 0.]]), bin_edges=[array([0.5, 0.83333333, 1.16666667, 1.5 ]),
array([0.5, 0.83333333, 1.16666667, 1.5 ])],
binnumber=array([12, 12, 12, 12, 12, 12, 12, 12, 12, 12], dtype=int64))

Code #2 :

 `# importing libraries ` `import` `numpy as np ` `from` `scipy ``import` `stats ` ` `  `# using np.ones for x and y ` `x ``=` `np.ones(``10``) ` `y ``=` `np.ones(``10``) ` ` `  `# Using binned_statistic_dd ` `print` `(``"\nbinned_statistic_2d for count : "``,  ` `        ``stats.binned_statistic_dd([x, y], ``None``, ` `        ``'count'``, bins``=``3``, ``range``=``[[``2``,``3``],[``0``,``0.5``]])) `

Output :

binned_statistic_2d for count : BinnedStatisticddResult(statistic=array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]]), bin_edges=[array([2., 2.33333333, 2.66666667, 3. ]),
array([0., 0.16666667, 0.33333333, 0.5 ])],
binnumber=array([4, 4, 4, 4, 4, 4, 4, 4, 4, 4], dtype=int64))

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.