zoukankan      html  css  js  c++  java
  • pandas随机排列与随机抽样

    随机排列

    利用 numpy.random.permutation() 函数,可以返回一个序列的随机排列。将此随机排列作为 take() 函数的参数,通过应用 take() 函数就可实现按此随机排列来调整 Series 对象或 DataFrame 对象各行的顺序。
    其示例代码 example1.py 如下:

           注意:take()里面的索引只能用隐式索引,axis =0 表示行随机,axis =1 表示列随机

           例如:df.take([1,0,2],axis=1) 打乱列,列的排序变为:1,0,2 

    import numpy as np
    import pandas as pd
    #创建DataFrame
    df = pd.DataFrame(np.arange(12).reshape(4,3))
    print(df)
      0  1 2
    0 0  1 2
    1 3  4 5
    2 6  7 8
    3 9 10 11
    #打乱df的行顺序和列顺序 
    df.take(np.random.permutation(3),axis=1).take(np.random.permutation(1000),axis=0)
    
    #创建随机排列:生成0-3的随机整数一维数组
    order = np.random.permutation(4)
    #通过随机排列调整DataFrame各行顺序
    newDf = df.take(order)
    print(newDf)
      0  1  2
    2 6  7  8
    3 9  10 11
    0 0  1  2
    1 3  4  5

    随机抽样

    随机抽样是指随机从数据中按照一定的行数或者比例抽取数据。随机抽样的函数如下:

    numpy.random.randint(start,end,size)

    函数中的参数说明如下:

    • start:随机数的开始值;
    • end:随机数的终止值;
    • size:抽样个数。

    通过 numpy.random.randint() 函数产生随机抽样的数据,通过应用 take() 函数就可实现随机抽取 Series 对象或 DataFrame 对象中的数据。其示例代码 example2.py 如下

    import numpy as np
    import pandas as pd
    #创建DataFrame
    df = pd.DataFrame(np.arange(12).reshape(4,3))
    print(df)
    0 1 2
    0 0 1 2
    1 3 4 5
    2 6 7 8
    3 9 10 11
    
    #随机抽样
    order = np.random.randint(0,len(df),size=3)
    #通过随机抽样抽取DataFrame中的行
    newDf = df.take(order)
    print(newDf)
    0 1 2
    0 0 1 2
    1 3 4 5
    1 3 4 5
  • 相关阅读:
    UOJ #455 [UER #8]雪灾与外卖 (贪心、模拟费用流)
    Codeforces 482E ELCA (LCT)
    Codeforces 798D Mike and distribution (构造)
    AtCoder AGC017C Snuke and Spells
    HDU 6089 Rikka with Terrorist (线段树)
    HDU 6136 Death Podracing (堆)
    AtCoder AGC032D Rotation Sort (DP)
    jenkins+python+kubectl实现批量更新k8s镜像
    Linux 下载最新kubectl版本的命令:
    jenkins X 和k8s CI/CD
  • 原文地址:https://www.cnblogs.com/aitree/p/14309480.html
Copyright © 2011-2022 走看看