zoukankan      html  css  js  c++  java
  • Python数据分析--------numpy数据打乱

    一、shuffle函数:

    import numpy.random

    def shuffleData(data):

      np.random.shufflr(data)

      cols=data.shape[1]

      X=data[:,0:cols-1]

      Y=data[:,cols-1:]

      return X,Y

    二、np.random.permutation()函数

    这个函数的使用来随机排列一个数组的,

    一维数组:

    对多维数组来说,是多维随机打乱而不是1维,例如:

    如果要利用次函数对输入数据X、Y进行随机排序,且要求随机排序后的X Y中的值保持原来的对应关系,可以这样处理:

    permutation = list(np.random.permutation(m))  #m为样本数

    shuffled_X = X[permutation]

    shuffled_Y = Y[permutation].reshape((1,m))

    图4中的代码是针对一维数组来说的,(图片中右侧为运行结果):

    图5中的代码是针对二维数组来说的:

    https://blog.csdn.net/zhlw_199008/article/details/80569167

    三、sameple函数

    sample()参数frac是要返回的比例,比如df中有10行数据,我只想返回其中的30%,那么frac=0.3

    以下代码实现了从“CRASHSEV”中选出1,2,3,4的属性,乱序,然后取出前10000行,按行链接成新的数据,重建索引:

    def unbanlance(un_data):
    
        data1 = un_data.loc[(data["CRASHSEV"] == 1)].sample(frac=1).iloc[:10000, :]
    
        data2 = un_data.loc[(data["CRASHSEV"] == 2)].sample(frac=1).iloc[:10000, :]
    
        data3 = un_data.loc[(data["CRASHSEV"] == 3)].sample(frac=1).iloc[:10000, :]
    
        data4 = un_data.loc[(data["CRASHSEV"] == 4)].sample(frac=1).iloc[:10000, :]
    
        ba_data = pd.concat([data1,data2,data3,data4], axis=0).sample(frac=1).reset_index(drop=True)  #0是按行链接
    
        return ba_data
  • 相关阅读:
    鹅厂女专家:用“爱折腾”实现跨界之美
    基于腾讯云的视频聊天研究
    iOS微信内存监控
    2017年数据库技术盘点
    如何做好游戏内实时语音体验
    腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来
    使用腾讯云“自定义监控”监控GPU使用率
    如何在Python中从零开始实现随机森林
    DataGridView 设置某个列为只能为数字
    Ieditor
  • 原文地址:https://www.cnblogs.com/Lee-yl/p/9068597.html
Copyright © 2011-2022 走看看