亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

用Python進行抽樣的方法

發布時間:2020-07-06 16:15:32 來源:億速云 閱讀:499 作者:清晨 欄目:編程語言

這篇文章將為大家詳細講解有關用Python進行抽樣的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

用Python進行抽樣的步驟:

第1部分:導入需要的庫

import random # 導入標準庫 
import numpy as np # 導入第三方庫

這里用到了Python內置標準庫random以及第三方庫Numpy,前者用于做隨機抽樣,后者用于讀取文件并做數據切片使用。

第2部分:實現簡單隨機抽樣

data = np.loadtxt('data3.txt') # 導入普通數據文件 
data_sample = data[random.sample([i for i in range(len(data))], 2000)] 
 # 隨機抽取2000個樣本 
print(data_sample[:2]) # 打印輸出前2條數據 
print(len(data_sample)) # 打印輸出抽樣樣本量

首先通過Numpy的loadtxt方法讀取數據文件。

然后使用Random庫中的sample方法做數據抽樣。

由于sample庫要求抽取的對象是一個序列或set,因此這里使用了一個列表推導式直接基于data數據集的記錄數生成索引列表,

然后再返回給sample隨機抽樣,抽樣數量為2000;最后從data中直接基于索引獲得隨機抽樣后的結果。

打印輸出前2條數據和總抽樣樣本量。返回結果如下:

[[-4.59501348 8.82741653 4.40096599 3.40332532 -6.54589933] 
 [-7.23173404 -8.92692519 6.82830873 3.0378005 4.64450399]] 
2000

第3部分:傳統方法

ind = [] 
for i in range(len(data)): 
 ind.append(i)

而這里的列表推導式的寫法[i for i in range(len(data))]除了在語法上更加簡潔和優雅外,在性能上同樣會有提升。

我們通過如下實驗做簡單測試,對從0到1000000的每個數求平方然后添加到列表。兩種方法如下:

# 方法1:傳統方法 
import time 
t0=time.time() # 開始時間 
ind = [] 
for i in range(1000000): 
 sqr_values = i*i 
 ind.append(sqr_values) 
t1 = time.time() # 結束時間 
print(t1-t0) # 打印時間 
# 方法2:列表推導式 
import time 
t0=time.time() # 開始時間 
sqr_values = [i*i for i in range(1000000)] 
t1 = time.time() # 結束時間 
print(t1-t0) # 打印時間

上述代碼執行后的輸出結果分別是:

0.39202237129211426 
0.12700724601745605

上面只是簡單的計算邏輯并且數據量也不大,

如果配合大數據量以及更復雜的運算,

那么效率提升會非常明顯。

關于用Python進行抽樣的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

小金县| 临汾市| 英吉沙县| 九龙县| 乌鲁木齐市| 调兵山市| 沙田区| 饶阳县| 米脂县| 民乐县| 安陆市| 葫芦岛市| 凤翔县| 辽宁省| 双流县| 武乡县| 永定县| 武清区| 缙云县| 新化县| 蒲江县| 镇康县| 永平县| 平谷区| 呼伦贝尔市| 始兴县| 伊川县| 永昌县| 东乡族自治县| 茌平县| 来宾市| 长沙市| 尼勒克县| 铜鼓县| 闵行区| 新沂市| 托克托县| 都昌县| 丰台区| 邵武市| 隆尧县|