加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 如何将连续数据拆分成组?

发布时间:2020-12-20 12:09:01 所属栏目:Python 来源:网络整理
导读:我有两个数据集,第一个包含离散数据,第二个包含连续数据: import numpy as np# discretedata1 = [1,1,2,3,4,7,7]# continuousdata2 = np.random.normal(size=100) 现在我想计算频率.它对data1来说很简单,因为它包含离散值: import collectionsc = collecti
我有两个数据集,第一个包含离散数据,第二个包含连续数据:

import numpy as np

# discrete
data1 = [1,1,2,3,4,7,7]

# continuous
data2 = np.random.normal(size=100)

现在我想计算频率.它对data1来说很简单,因为它包含离散值:

import collections
c = collections.Counter(data1)
sum = sum(c.values())
for key,val in c.iteritems():
   print([key,float(val)/sum])

如何为连续数字做同样的事情?从理论上我知道必须对连续数据进行分组.只有在此之后它才能表示为条形图.那么,如何在python中对数据进行分组?

解决方法

您正在寻找的是一个 histogram.您可以使用 numpy.histogram从阵列中获取其中一个.你将一个numpy数组和你的组的边缘(或通常称为它们的bin)传递给函数,它将返回一个2元组,由每个bin中的元素数和bin边缘组成.来自文档的示例:

>>> np.histogram([1,1],bins=[0,3])
(array([0,1]),array([0,3]))

@ajrc在评论中提到了熊猫.如果你有一个pandas系列(并且你可以用s = pandas.series(data2)创建一个),你可以通过调用s.hist()创建一个直方图.它将创建一个直方图,在你的数据范围内具有等间隔的二进制数(默认的bin数为10,但你可以使用bin参数调整它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读