随机取样不同的数据


前言

最近对卫星数据进行随机取样检核,根据模型符合度和各种DOP判断数据的正确性,数据随机取样的方式有很多:比如按数据的残差大小分子集进行检核(先检核正确率高的数据);按数据的系统分子集进行检核;按数据的频点分子集进行检核;全部数据一起进行检核;数据分半检核,即每次取一半的数据添加进去,检测有问题的话,再从刚才的子集中一个个添加进去,检验是哪个数据出问题。

1、随机取样代码

下面的代码是从10个数据中随机抽取5个数据,总共抽取10次。


#include <iostream>
#include <cstdlib> 
#include <ctime>

void RandTest(int *randinex , int epochNum,int lengthdata)
{
	int *randfalg= (int *)malloc(lengthdata * sizeof(int));
	memset(randfalg,0x0,sizeof(int)*lengthdata);

	int Num = 0, j=0, t = 0;
	for (j = 0; j < epochNum; j++)
		{
			t = rand() % lengthdata;//随机生成0-(lengthdata-1)的数据
			if (randfalg[t] != 1)//确保同样的随机数,只去一次
			{
				randfalg[t] = 1;
				randinex[Num] = t;
				printf(" %2d ", t);
				Num++;
				if (Num == epochNum) continue;
			}
			else
			{
				j--;
			}
		}

	printf(" \n");
	free(randfalg);
	
}

#define kEPOCHNUM 5        
#define kSAMPLENUM 10

int main(int argc, const char * argv[])
{

	int  k = 0, lengthdata = 0;

	int gdata[10] = {11,3,5,6,7,8,23,1,-1,-2};//需要取样的数据
	lengthdata = sizeof(gdata)/sizeof(int);//计算数据的长度

	int randindex[kSAMPLENUM][kEPOCHNUM] = {0};//下标保存
    srand((unsigned)time(NULL));

	for (k = 0; k < kSAMPLENUM; k++)//取样次数 kSAMPLENUM
	{
		//每次从lengthdata个数据中取出kEPOCHNUM个数据对应的下标
		printf("取样次数: %2d  gdata对应的下标",k+1 );
		RandTest(randindex[k], kEPOCHNUM, lengthdata);
	}

	return 0;

}

取样结果图:
在这里插入图片描述

在Python中,我们经常需要从一个列表或数据集中随机抽取一些元素,以进行随机实验、样本测试等操作。Python提供了许多有用的工具和函数来进行随机取样。常用的三种随机抽样方法包括简单随机抽样、有放回随机抽样和无放回随机抽样。简单随机抽样是从一个包含N个元素的总体中随机抽取n个元素构成样本,每个元素被抽取的概率相等,且抽取的元素互相独立。有放回随机抽样是在抽取一个元素后将其放回总体中,使得下一次抽取时该元素仍然有机会被选中。无放回随机抽样是在抽取一个元素后不再将其放回总体中,使得下一次抽取时该元素不再有机会被选中。 对于简单随机抽样,我们可以使用Python的random模块中的sample函数。该函数接受一个列表(或其他可迭代对象)和要抽取的样本大小,返回一个随机抽取的样本列表。示例代码如下: ```python import random population = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] sample_size = 5 sample = random.sample(population, sample_size) print #### 引用[.reference_title] - *1* *3* [python随机抽样_掌握python中的随机抽样](https://blog.csdn.net/weixin_26736149/article/details/108915780)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Python随机抽样的三种方法及自定义封装函数实现](https://blog.csdn.net/ai52learn/article/details/130833730)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值