java 随机抽取List数据

本文分享了一个Java方法,用于从给定的List中按比例随机抽取指定数量的元素,并在抽取后移除已选元素,以保持List大小不变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i


提示:以下是本篇文章正文内容,下面案例可供参考

 /**
     * .
     * 根据随机抽取List数据
     *
     * @param subList 待抽取的List
     * @param count   抽取个数
     * @return
     */
    private List<Integer> proportionalExtra(List<Integer> subList, Integer count) {
        List<Integer> resList = new ArrayList<>();
        if (count >= 1) {
            Random random = new Random();
            if (subList.size() == 1 || subList.size() == 0 || subList.size() == count) {
                resList = subList;
            } else {
                for (int i = 0; i < count; i++) {
                    int intRandom = random.nextInt(subList.size() - 1);
                    resList.add(subList.get(intRandom));
                    subList.remove(subList.get(intRandom));
                }
            }
        }
        return resList;
    }

总结

我是南国以南i记录点滴每天成长一点点,学习是永无止境的!转载请附原文链接!!!

在PyTorch中,我们可以使用`torch.utils.data.Dataset`和`torch.utils.data.DataLoader`来划分数据集并实现按比例随机抽样。这里是一个简单的例子,展示了如何根据给定的比例划分训练集、验证集和测试集: ```python import torch from torch.utils.data import Dataset, DataLoader class CustomDataset(Dataset): # 假设你已经有了一个包含'images'和'targets'的数据字典 def __init__(self, data, train_val_test_split=(0.8, 0.1, 0.1)): self.data = data self.train_indices, self.val_indices, self.test_indices = self.split_indices(train_val_test_split) def split_indices(self, proportions): total_size = len(self.data) indices = list(range(total_size)) split_points = [int(p * total_size) for p in proportions] return indices[:split_points[0]], indices[split_points[0]:split_points[1]], indices[split_points[1]:] def __len__(self): return len(self.data) def __getitem__(self, idx): image = self.data[idx]['image'] target = self.data[idx]['target'] return {'image': image, 'target': target} # 创建一个示例数据集 data = ... # 这里应该是你的实际数据列表或字典 dataset = CustomDataset(data) # 设置数据加载器参数 batch_size = 32 train_loader = DataLoader(dataset=dataset.train_indices, batch_size=batch_size, shuffle=True) val_loader = DataLoader(dataset=dataset.val_indices, batch_size=batch_size) test_loader = DataLoader(dataset=dataset.test_indices, batch_size=batch_size) ``` 在这个例子中,`CustomDataset`继承自`torch.utils.data.Dataset`,并在初始化时根据给定的比例划分数据。每个`DataLoader`负责从相应的子集合中抽取样本。 如果你的数据不是字典形式,可能需要稍微修改`__getitem__`方法以适应你的数据结构。此外,确保你的数据已经预处理为适合神经网络输入的格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南国以南i

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值