python抽样总结

import random
import numpy as np
#简单随机抽样
data=np.loadtxt("E:/data/book/python_book/chapter3/data3.txt")
# print(type(data))
data_sample=random.sample(list(data),2000)#随机抽取2000个样本
# print(data_sample[:2])#打印前两条数据
# print(len(data_sample))#打印样本量

#等距抽样
data=np.loadtxt("E:/data/book/python_book/chapter3/data3.txt")
sample_count=2000#指定抽样数
record_count=data.shape[0]#最大样本数
width=int(record_count/sample_count)
data_sample=[]
i=0
while len(data_sample) <= sample_count and i*width <=record_count-1:
    data_sample.append(data[i*width])#新增样本
    i+=1
# print(data_sample[:2])#打印前两条数据
# print(len(data_sample))#打印样本量

#分层抽样
data2=np.loadtxt("E:/data/book/python_book/chapter3/data2.txt")
each_sample_count=200 #定义每个分层的抽样数量
label_data_unique=np.unique(data2[:,-1])#
print(label_data_unique)
sample_list=[]#存放临时分层数据
sample_data=[]#存放最终抽样数据
sample_dict={}#用来显示各分层样本数量
for label_data in label_data_unique:
    for data_tmp in data2:
        if data_tmp[-1] == label_data:#如果数据最后一列为标签
            sample_list.append(data_tmp)#
    each_sample_data=random.sample(sample_list,each_sample_count)#对每层随机抽样
    sample_data.extend(each_sample_data)#将抽样数据追加到分层数据里面
    sample_dict[label_data]=len(each_sample_data)#样本统计结果
# print(sample_dict)

#整群抽样
data3=np.loadtxt("E:/data/book/python_book/chapter3/data4.txt")
label_data_unique=np.unique(data3[:,-1])#定义整群标签值域
print(label_data_unique)
sample_label=random.sample(list(label_data_unique),2)#随机抽取2个整群
sample_data=[] #定义空列表,用来存储最终抽样数据
for each_label in sample_label:
    for data_tmp in data2:
        if data_tmp[-1] == each_label:#如果数据最后一列为标签
            sample_data.append(data_tmp)
print(sample_label)
print(sample_data)

 

宋天龙.《Python数据分析与数据化运营》

 

附带样例文件

https://pan.baidu.com/s/1q2-3a72BETvtfDhPaufsTQ

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值