<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    Pandas+Numpy+Sklearn隨機取數

    共 5523字,需瀏覽 12分鐘

     ·

    2022-06-17 21:09

    本文轉自公眾號:尤而小屋

    本文記錄的是如何使用Python、pandas、numpy、scikit-learn來實現(xiàn)隨機打亂、抽取和切割數據。主要的方法包含:

    • sample
    • shuffle
    • np.random.permutation
    • train_test_split

    導入數據

    In [1]:

    import pandas as pd
    import numpy as np
    import random  # 隨機模塊

    import plotly_express as px  # 可視化庫
    import plotly.graph_objects as go

    內置數據

    采用的是plotly庫中內置的一份消費數據集:

    In [2]:

    df = px.data.tips()
    df.head()

    基本信息

    In [3]:

    df.shape

    Out[3]:

    (244, 7)

    In [4]:

    columns = df.columns
    columns

    Out[4]:

    Index(['total_bill''tip''sex''smoker''day''time''size'], dtype='object')

    sample實現(xiàn)

    行方向

    In [5]:

    隨機抽取一行記錄:

    df.sample()  # 隨機抽取一行記錄

    隨機抽取多行數據:

    通過參數frac實現(xiàn)按照比例隨機抽樣:

    df.sample(frac=0.05)

    列方向

    主要是選擇不同數量或者比例的屬性;整體的行數量是不變的

    In [8]:

    df.sample(3, axis=1)  # 在列屬性上抽取

    shuffle實現(xiàn)

    scikit-Learn的shuffle

    In [9]:

    from sklearn.utils import shuffle

    In [10]:

    shuffle(df)  # 打亂數據

    random模塊的shuffle

    In [11]:

    length = list(range(len(df)))  # 原始的長度作為索引
    length[:5]

    Out[11]:

    [0, 1, 2, 3, 4]

    In [12]:

    random.shuffle(length)  # 打亂索引

    In [13]:

    length[:5]

    Out[13]:

    [136, 35, 207, 127, 29]  # 打亂后的結果

    In [14]:

    df.iloc[length]   # 通過打亂后的索引獲取數據

    numpy實現(xiàn)

    In [15]:

    # 先打亂每個索引
    np.random.permutation(len(df))

    Out[15]:

    array([223,  98238,  17101,  26122212,  27,  79210147176,
            82164142141219,   6,  63185112158188242207,
            45,  55178150217,  32,  16160157234,  95174,  93,
            52,  57220216230,  35,  86125114100,  73,  83,  88,
            34,   7,  40115,  97165,  84,  18197151135121,  72,
           173228143227,   9183,  56,  23237136106133189,
           139,   0208,  74166,   4,  68,  12,  71,  85172138149,
           144232186,  99130,  41201204,  10167195,  66159,
           213,  87103117,  31211190,  24243127,  48218233,
           113,  81235229206,  96,  46222,  50156180214124,
           240140,  89225,   2120,  58169193,  39102104148,
           184170152153146179137129,  64,   3,  65128,  90,
           110,  14226181131203221,  80,  51,  94231,  44108,
            43145,  47,  75162163,  69126200,   1123,  37205,
           111,  25,  91,  11,  42,  67118196161,  28116105,  33,
            38,  78,  76224,  20202171177107,   8209239,  77,
           241154,   5198,  92,  61182,  36,  70,  22,  54187175,
           119215,  49134,  21,  60,  62168,  59155194109132,
            19199,  29191,  13,  30192236,  15,  53])

    In [16]:

    # 通過打亂后的索引來選擇數據

    df.iloc[np.random.permutation(len(df))]

    train_test_split實現(xiàn)

    from sklearn.model_selection import train_test_split

    data = []

    for i in train_test_split(df, test_size=0.2):
        data.append(i)

    In [18]:

    第一份數據是80%的:

    data[0]   # 80%的數據

    剩余的20%的數據:




    相關閱讀:


    瀏覽 71
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報
    評論
    圖片
    表情
    推薦
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    内射无套内射国产精品视频 | 日本和韩国的黄色一级视频 | 亚洲国产精品久久久久久久 | 免费成人视频在线豆花 | 一级片乱伦网站 |