python连续数字分为一组_python – 如何将连续数据拆分成组?

我有两个数据集,第一个包含离散数据,第二个包含连续数据:

import numpy as np

# discrete

data1 = [1, 1, 2, 2, 2, 3, 4, 4,7, 7, 7, 7, 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, 2, 1], bins=[0, 1, 2, 3])

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

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

标签:python,dataframe,numpy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值