隨機排列利用 numpy.random.permutation() 函數(shù),可以返回一個序列的隨機排列。將此隨機排列作為 take() 函數(shù)的參數(shù),通過應(yīng)用 take() 函數(shù)就可實現(xiàn)按此隨機排列來調(diào)整 Series 對象或 DataFrame 對象各行的順序。 注意:take()里面的索引只能用隱式索引,axis =0 表示行隨機,axis =1 表示列隨機 例如:df.take([1,0,2],axis=1) 打亂列,列的排序變?yōu)椋?,0,2 import numpy as np import pandas as pd #創(chuàng)建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) #創(chuàng)建隨機排列:生成0-3的隨機整數(shù)一維數(shù)組 order = np.random.permutation(4) #通過隨機排列調(diào)整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 隨機抽樣隨機抽樣是指隨機從數(shù)據(jù)中按照一定的行數(shù)或者比例抽取數(shù)據(jù)。隨機抽樣的函數(shù)如下: numpy.random.randint(start,end,size) 函數(shù)中的參數(shù)說明如下:
通過 numpy.random.randint() 函數(shù)產(chǎn)生隨機抽樣的數(shù)據(jù),通過應(yīng)用 take() 函數(shù)就可實現(xiàn)隨機抽取 Series 對象或 DataFrame 對象中的數(shù)據(jù)。其示例代碼 example2.py 如下 import numpy as np import pandas as pd #創(chuàng)建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
|
|