• 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
  • 相关阅读:
    【leetcode】1. Two Sum
    【leetcode】32. Longest Valid Parentheses
    【leetcode】20. Valid Parentheses
    scala细节
    【转】CentOS下firefox安装flash说明
    Spring 容器(一)
    源码学习快捷键
    Gradle编译spring3.x报错找不到itextpdf4.2.2解决方案
    Insertion Sort
    Bubble Sort
  • 原文地址:https://www.cnblogs.com/aitree/p/14309480.html
Copyright © 2020-2023  润新知