欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于python 等頻分箱qcut問題的解決

 更新時間:2020年03月03日 10:51:25   作者:喜東東cc  
這篇文章主要介紹了基于python 等頻分箱qcut問題的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在python 較新的版本中,pandas.qcut()這個函數(shù)中是有duplicates這個參數(shù)的,它能解決在等頻分箱中遇到的重復值過多引起報錯的問題;

在比較舊版本的python中,提供一下解決辦法:

import pandas as pd
 
def pct_rank_qcut(series, n):
  '''
  series:要分箱的列
  n:箱子數(shù)
  '''
  edages = pd.series([i/n for i in range(n)] # 轉(zhuǎn)換成百分比
  func = lambda x: (edages >= x).argmax() #函數(shù):(edages >= x)返回fasle/true列表中第一次出現(xiàn)true的索引值
  return series.rank(pct=1).astype(float).apply(func) #series.rank(pct=1)每個值對應的百分位數(shù),最終返回對應的組數(shù);rank()函數(shù)傳入的數(shù)據(jù)類型若為object,結(jié)果會有問題,因此進行了astype

補充拓展:Python數(shù)據(jù)離散化:等寬及等頻

在處理數(shù)據(jù)時,我們往往需要將連續(xù)性變量進行離散化,最常用的方式便是等寬離散化,等頻離散化,在此處我們討論離散化的概念,只給出在python中的實現(xiàn)以供參考

1. 等寬離散化

使用pandas中的cut()函數(shù)進行劃分

import numpy as np
import pandas as pd
 
# Discretization: Equal Width #
# Datas: Sample * Feature
def Discretization_EqualWidth(K, Datas, FeatureNumber):
  DisDatas = np.zeros_like(Datas)
  for i in range(FeatureNumber):
    DisOneFeature = pd.cut(Datas[:, i], K, labels=range(1, K+1))
    DisDatas[:, i] = DisOneFeature
  return DisDatas

2. 等頻離散化

pandas中有qcut()可以使用,但是邊界易出現(xiàn)重復值,如果為了刪除重復值設置 duplicates=‘drop',則易出現(xiàn)于分片個數(shù)少于指定個數(shù)的問題,因此在此處不使用qcut()

import numpy as np
import pandas as pd
 
# Discretization: Equal Frequency #
# vector: single feature
def Rank_qcut(vector, K):
  quantile = np.array([float(i) / K for i in range(K + 1)]) # Quantile: K+1 values
  funBounder = lambda x: (quantile >= x).argmax()
  return vector.rank(pct=True).apply(funBounder)
 
# Discretization: Equal Frequency #
# Datas: Sample * Feature
def Discretization_EqualFrequency(K, Datas, FeatureNumber):
  DisDatas = np.zeros_like(Datas)
  w = [float(i) / K for i in range(K + 1)]
  for i in range(FeatureNumber):
    DisOneFeature = Rank_qcut(pd.Series(Datas[:, i]), K)
    #print(DisOneFeature)
    DisDatas[:, i] = DisOneFeature
  return DisDatas

以上這篇基于python 等頻分箱qcut問題的解決就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python3 numpy中數(shù)組相乘np.dot(a,b)運算的規(guī)則說明

    python3 numpy中數(shù)組相乘np.dot(a,b)運算的規(guī)則說明

    這篇文章主要介紹了python3 numpy中數(shù)組相乘np.dot(a,b)運算的規(guī)則說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python3實現(xiàn)往mysql中插入datetime類型的數(shù)據(jù)

    python3實現(xiàn)往mysql中插入datetime類型的數(shù)據(jù)

    這篇文章主要介紹了python3實現(xiàn)往mysql中插入datetime類型的數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python實現(xiàn)繪制水平線

    Python實現(xiàn)繪制水平線

    這篇文章主要為大家詳細介紹如何了在Python中創(chuàng)建一條水平線以及Python?中的?Matplotlib?庫的使用,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2023-10-10
  • Python fileinput模塊使用實例

    Python fileinput模塊使用實例

    這篇文章主要介紹了Python fileinput模塊使用實例,本文講解了典型用法、基本格式、默認格式、常用函數(shù)和常見例子等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • 利用Python上傳日志并監(jiān)控告警的方法詳解

    利用Python上傳日志并監(jiān)控告警的方法詳解

    這篇文章將詳細為大家介紹如何通過阿里云日志服務搭建一套通過Python上傳日志、配置日志告警的監(jiān)控服務,感興趣的小伙伴可以了解一下
    2022-05-05
  • ipython和python區(qū)別詳解

    ipython和python區(qū)別詳解

    在本篇文章里小編給大家分享了關于ipython和python區(qū)別的相關知識點,有興趣的朋友們跟著學習下。
    2019-06-06
  • Python中static相關知識小結(jié)

    Python中static相關知識小結(jié)

    static用法:是一個修飾符,用于修飾成員(成員變量,成員函數(shù)).當成員被靜態(tài)修飾后,就多了一個調(diào)用方式,除了可以被對象調(diào)用外,還可以直接被類名調(diào)用,格式——類名.靜態(tài)成員。
    2018-01-01
  • Python+OpenCV繪制灰度直方圖詳解

    Python+OpenCV繪制灰度直方圖詳解

    一幅圖像由不同灰度值的像素組成,圖像中灰度的分布情況是該圖像的一個重要特征。圖像的灰度直方圖就描述了圖像中灰度分布情況。本文將利用Python和OpenCV繪制灰度直方圖,需要的可以參考一下
    2022-03-03
  • Pytorch中torch.repeat_interleave()函數(shù)使用及說明

    Pytorch中torch.repeat_interleave()函數(shù)使用及說明

    這篇文章主要介紹了Pytorch中torch.repeat_interleave()函數(shù)使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • python更加靈活的Logger日志詳解

    python更加靈活的Logger日志詳解

    這篇文章主要介紹了python Logger日志,用到的4個類,針對每個知識點給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09

最新評論