参考链接: Python中的numpy.ceil

numpy.histogram_bin_edges

numpy.histogram_bin_edges(a, bins=10, range=None, weights=None)    [source]

仅计算histogram函数使用的bin边缘的函数。参数 :a :array_like

输入数据。直方图是在展平的数组上计算的。

bins :int 或 sequence of scalars 或 str, 可选

如果bins是一个int,

则它定义给定范围内的等宽 bins数(默认为10个)。

如果bin是序列,则它将定义bin边缘(包括最右边),

从而允许非均匀的bin宽度。

如果bins是下面列表中的字符串,

histogram_bin_edges将使用选择的方法来计算最佳bin宽度,

从而根据落下的数据计算bin的数量

(有关估计量的更多信息,请参见“Notes”)。

在要求的范围内。虽然箱宽对于该范围内的实际数据而言是最佳的,

但bins 数将被计算为填充整个范围,包括空白部分。

为了实现可视化,建议使用 ‘auto’ 选项。

自动箱大小选择不支持加权数据。‘auto’'sturges'和' fd'估计量的最大值。提供良好的整体性能。‘fd’ (Freedman Diaconis Estimator)考虑数据可变性和数据大小的健壮(对离群值有弹性)估计器。‘doane’Sturges ' estimator的改进版本,能更好地处理非正规数据集。‘scott’考虑到数据可变性和数据大小的不太稳健的估计。‘stone’基于leave-one-out cross-validation的综合平方误差估计的估计量。

可以看作是斯科特规则的概括。‘rice’估计器不考虑可变性,只考虑数据的大小。

通常高估所需bins的数量。‘sturges’R的默认方法,只考虑数据大小。只对高斯数据最优,

对大的非高斯数据集低估bins数。‘sqrt’平方根(数据大小)估计器,用于Excel和其他程序的速度和简单。

range :(float, float), 可选

bins的上下范围。如果未提供,则范围只是(a.min(),a.max())。

超出范围的值将被忽略。范围的第一个元素必须小于或等于第二个。

范围也会影响自动bin计算。

虽然根据范围内的实际数据计算出箱宽是最佳的,

但箱数将填充整个范围,包括不包含数据的部分。

weights :array_like, 可选

一组与a形状相同的weights。

每个中的每个值仅将其相关权重分配给bin计数(而不是1)。

目前,任何bin估算器均未使用此功能,但将来可能会使用。

返回值 :bin_edges :array of dtype float

要传递到histogram中的边缘

Notes

估计箱的最佳数量的方法在文献中已经建立,并且受到R为直方图可视化提供的选择的启发。请注意,使bins数与比例成正比是渐近最优的,这就是为什么它出现在大多数估计器中的原因。这些都是简单的插件方法,可为bins数量提供良好的起点。在下面的公式中,是binwidth和bin的数量。使用数据的ptp将所有计算bin计数的估计器重转成为bin宽度。最终的bin计数是从np.round(np.ceil(range / h))获得的。

‘auto’ (maximum of the ‘sturges’ and ‘fd’ estimators)

为了得到一个好的价值而做出的妥协。对于小型数据集,Sturges值通常会被选择,而大型数据集通常会默认为FD。避免FD和Sturges分别对小数据集和大数据集过于保守的行为。切换点通常在

‘fd’ (Freedman Diaconis Estimator)

binwidth与四分位范围(IQR)成正比,与a的立方根成反比。对于小数据集可能过于保守,但对于大数据集非常好。IQR对异常值非常稳健。

‘scott’

binwidth与数据的标准偏差成正比,与x.size的立方根成反比。对于小数据集可能过于保守,但对于大数据集非常好。标准差对离群值不是很稳健。在没有异常值的情况下,值非常类似于Freedman-Diaconis估计量。

‘rice’

bins的数量只与a.size的立方根成正比。它倾向于高估bins的数量,而不考虑数据的可变性。

‘sturges’

bins的数量以a.size的2 log为底。该估计量假设数据正态性,对于较大的非正态数据集过于保守。这是R的hist方法中的默认方法。

‘doane’

斯特奇斯公式的改进版本,对非正常数据集产生更好的估计。这个估计器试图解释数据的歪斜。

‘sqrt’

最简单最快的估计值。只考虑数据大小。

例子>>> arr = np.array([0, 0, 0, 1, 2, 3, 3, 4, 5])

>>> np.histogram_bin_edges(arr, bins='auto', range=(0, 1))

array([0. , 0.25, 0.5 , 0.75, 1. ])

>>> np.histogram_bin_edges(arr, bins=2)

array([0. , 2.5, 5. ])

为了与直方图保持一致,预先计算的bin数组将通过未修改的传递:>>> np.histogram_bin_edges(arr, [1, 2])

array([1, 2])

此功能允许计算一组bin,并在多个直方图中重复使用:>>> shared_bins = np.histogram_bin_edges(arr, bins='auto')

>>> shared_bins

array([0., 1., 2., 3., 4., 5.])>>> group_id = np.array([0, 1, 1, 0, 1, 1, 0, 1, 1])

>>> hist_0, _ = np.histogram(arr[group_id == 0], bins=shared_bins)

>>> hist_1, _ = np.histogram(arr[group_id == 1], bins=shared_bins)>>> hist_0; hist_1

array([1, 1, 0, 1, 0])

array([2, 0, 1, 1, 2])

与为每个直方图使用单独的bin相比,这提供了更容易比较的结果:>>> hist_0, bins_0 = np.histogram(arr[group_id == 0], bins='auto')

>>> hist_1, bins_1 = np.histogram(arr[group_id == 1], bins='auto')

>>> hist_0; hist_1

array([1, 1, 1])

array([2, 1, 1, 2])

>>> bins_0; bins_1

array([0., 1., 2., 3.])

array([0. , 1.25, 2.5 , 3.75, 5. ])

[转载] python histogram函数_Python numpy.histogram_bin_edges函数方法的使用相关推荐

  1. python排大小函数_python numpy 一些函数 大小排序和统计

    排序大小函数 import numpy as np size = 100 a = np.random.randint(0, 1000, size=size) print(a) # 排序之后的前k个元素 ...

  2. python中isin函数_Python numpy.isin函数方法的使用

    numpy.isin numpy.isin(element, test_elements, assume_unique=False, invert=False)     [source] 计算test ...

  3. python怎么运行ln函数_python numpy ln函数python之nosetests自动化测试框架感知

    这几天都有遇到nosetest,一是hardway learn python中,还有一个是django中,因此想趁此了解下有什么用,看了半天也不理解具体的用处,还是老规矩把尝试的一些内容记下来.之所以 ...

  4. python row函数_Python numpy 常用函数总结

    Numpy是什么 在没给大家介绍numpy之前先给大家说下python的基本概念. Python 是一种高级的,动态的,多泛型的编程语言.Python代码很多时候看起来就像是伪代码一样,因此你可以使用 ...

  5. python 中arange函数_Python numpy.arange函数方法的使用

    numpy.arange numpy.arange([start, ]stop, [step, ]dtype=None) 返回给定间隔内的均匀间隔的值. 在半开间隔[start,stop)(换句话说, ...

  6. python的std函数_Python numpy.nanstd函数方法的使用

    numpy.nanstd numpy.nanstd(a, axis=None, dtype=None, out=None, ddof=0, keepdims= 忽略NaN时,计算沿指定轴的标准偏差. ...

  7. python分位数函数_Python numpy.quantile函数方法的使用

    numpy.quantile numpy.quantile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linea ...

  8. python transpose函数_Python Numpy.transpose函数可视化解释

    二维情况 例如以下代码: x = np.arange(4).reshape((2,2)) 输出: x = ([[0, 1], [2, 3]]) 对于二维的数组,np.transpose()即为将矩阵进 ...

  9. python unpack函数_Python numpy.unpackbits函数方法的使用

    numpy.unpackbits numpy.unpackbits(a, axis=None, count=None, bitorder='big') 将uint8数组的元素解压缩为二进制值输出数组. ...

最新文章

  1. 攀登数据科学家和数据工程师之间的隔墙
  2. The only supported ciphers are AES-128-CBC and AES-256-CBC
  3. MVC 视图与控制器传值的几种方法
  4. Mysql(11)——group by的用法
  5. 【培训稿件】构建WCF面向服务的应用程序(包含ppt,源代码)
  6. jsp用户登录验证_Java之使用过滤器进行登录验证
  7. Error(1.0.5 1107071739): D:\SAE_SDK_Windows_1.0...
  8. RTR/SLA 在多ISP环境下下的应用--已经更新,切换后线路恢复时,已能自动恢复
  9. python库cloudmusic: 网易云爬虫解决方案,轻松获取你想要的数据。
  10. 百度网盘为何下载总是那么慢?如何才能实现快速下载?
  11. hdu 1728:逃离迷宫
  12. Linux挂载硬盘(容量大于2T)
  13. hardfault常见原因_stm32 HardFault_Handler调试及问题查找方法
  14. python中的f的用法_python中f是什么
  15. 智力题、推理判断题、数量关系题(三)
  16. 简单的ppt转成pdf在线转换方法
  17. 攻防世界 MISC新手练习区 刷12道题题所得的思路和方法
  18. Spring-JMS(一)spring整合JSM之activeMQ
  19. Nature子刊:基于静息态EEG功能连接模式识别精神疾病亚型
  20. 考研日语线上笔记(三):初级日语语法总结20课

热门文章

  1. 【Codeforces 1421 D】Hexagons,贪心,模拟
  2. 【CCCC】L3-002 特殊堆栈 (30分),nlogn维护序列中位数,STL大乱斗,有重multiset,vector+二分插入
  3. 【Luogu1111】修复公路(MST模板)
  4. NYOJ96 - n-1位数
  5. android同步方法和对象的区别是什么,(4.1.10.8)Android Handler之同步屏障机制(sync barrier)...
  6. append在python中是什么意思_append在python里是什么意思
  7. Python入门--获取指定目录下的所有.py文件
  8. p71_文件传送协议FTP
  9. SQL注入漏洞入门(操作实现)
  10. 2017 ACM-ICPC南宁网络赛: I. GSM Base Station Identification(线性变换)