<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【Python】Pandas+Numpy+Sklearn隨機(jī)取數(shù)

          共 2804字,需瀏覽 6分鐘

           ·

          2022-06-09 08:51

          公眾號(hào):尤而小屋
          作者:Peter
          編輯:Peter

          大家好,我是Peter~

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

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

          導(dǎo)入數(shù)據(jù)

          In [1]:

          import?pandas?as?pd
          import?numpy?as?np
          import?random??#?隨機(jī)模塊

          import?plotly_express?as?px??#?可視化庫(kù)
          import?plotly.graph_objects?as?go

          內(nèi)置數(shù)據(jù)

          采用的是plotly庫(kù)中內(nèi)置的一份消費(fèi)數(shù)據(jù)集:

          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實(shí)現(xiàn)

          行方向

          In [5]:

          隨機(jī)抽取一行記錄:

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

          隨機(jī)抽取多行數(shù)據(jù):

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

          df.sample(frac=0.05)

          列方向

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

          In [8]:

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

          shuffle實(shí)現(xiàn)

          scikit-Learn的shuffle

          In [9]:

          from?sklearn.utils?import?shuffle

          In [10]:

          shuffle(df)??#?打亂數(shù)據(jù)

          random模塊的shuffle

          In [11]:

          length?=?list(range(len(df)))??#?原始的長(zhǎng)度作為索引
          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]??#?打亂后的結(jié)果

          In [14]:

          df.iloc[length]???#?通過打亂后的索引獲取數(shù)據(jù)

          numpy實(shí)現(xiàn)

          In [15]:

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

          Out[15]:

          array([223,??98,?238,??17,?101,??26,?122,?212,??27,??79,?210,?147,?176,
          ????????82,?164,?142,?141,?219,???6,??63,?185,?112,?158,?188,?242,?207,
          ????????45,??55,?178,?150,?217,??32,??16,?160,?157,?234,??95,?174,??93,
          ????????52,??57,?220,?216,?230,??35,??86,?125,?114,?100,??73,??83,??88,
          ????????34,???7,??40,?115,??97,?165,??84,??18,?197,?151,?135,?121,??72,
          ???????173,?228,?143,?227,???9,?183,??56,??23,?237,?136,?106,?133,?189,
          ???????139,???0,?208,??74,?166,???4,??68,??12,??71,??85,?172,?138,?149,
          ???????144,?232,?186,??99,?130,??41,?201,?204,??10,?167,?195,??66,?159,
          ???????213,??87,?103,?117,??31,?211,?190,??24,?243,?127,??48,?218,?233,
          ???????113,??81,?235,?229,?206,??96,??46,?222,??50,?156,?180,?214,?124,
          ???????240,?140,??89,?225,???2,?120,??58,?169,?193,??39,?102,?104,?148,
          ???????184,?170,?152,?153,?146,?179,?137,?129,??64,???3,??65,?128,??90,
          ???????110,??14,?226,?181,?131,?203,?221,??80,??51,??94,?231,??44,?108,
          ????????43,?145,??47,??75,?162,?163,??69,?126,?200,???1,?123,??37,?205,
          ???????111,??25,??91,??11,??42,??67,?118,?196,?161,??28,?116,?105,??33,
          ????????38,??78,??76,?224,??20,?202,?171,?177,?107,???8,?209,?239,??77,
          ???????241,?154,???5,?198,??92,??61,?182,??36,??70,??22,??54,?187,?175,
          ???????119,?215,??49,?134,??21,??60,??62,?168,??59,?155,?194,?109,?132,
          ????????19,?199,??29,?191,??13,??30,?192,?236,??15,??53])

          In [16]:

          #?通過打亂后的索引來(lái)選擇數(shù)據(jù)

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

          train_test_split實(shí)現(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]:

          第一份數(shù)據(jù)是80%的:

          data[0]???#?80%的數(shù)據(jù)

          剩余的20%的數(shù)據(jù):

          往期精彩回顧




          瀏覽 48
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  俺来也俺也拍www色 | 一区二区三区高清 | 欧美亚洲及日本黄色电影 | 久草视频首页 | 日韩无码黄色片 |