使用python从列表中随机提取x个项目

2023-11-22

从两个列表开始,例如:

lstOne = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
lstTwo = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '10']

我想让用户输入他们想要提取的项目数量(占整个列表长度的百分比),以及从每个列表中随机提取的相同索引。例如,假设我想要 50%,输出将是

newLstOne = ['8', '1', '3', '7', '5']
newLstTwo = ['8', '1', '3', '7', '5']

我使用以下代码实现了这一点:

from random import randrange

lstOne = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
lstTwo = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '10']

LengthOfList = len(lstOne)
print LengthOfList

PercentageToUse = input("What Percentage Of Reads Do you want to extract? ")
RangeOfListIndices = []

HowManyIndicesToMake = (float(PercentageToUse)/100)*float(LengthOfList)
print HowManyIndicesToMake

for x in lstOne:
    if len(RangeOfListIndices)==int(HowManyIndicesToMake):
        break
    else:
        random_index = randrange(0,LengthOfList)
        RangeOfListIndices.append(random_index)

print RangeOfListIndices


newlstOne = []
newlstTwo = []

for x in RangeOfListIndices:
    newlstOne.append(lstOne[int(x)])
for x in RangeOfListIndices:
    newlstTwo.append(lstTwo[int(x)])

print newlstOne
print newlstTwo

但我想知道是否有更有效的方法来做到这一点,在我的实际用例中,这是从 145,000 个项目中进行子采样。此外,在这个尺度上,randrange 是否足够没有偏差?

谢谢


Q. I want to have the user input how many items they want to extract, as a percentage of the overall list length, and the same indices from each list to be randomly extracted.

A.最直接的方法直接符合您的规格:

 percentage = float(raw_input('What percentage? '))
 k = len(data) * percentage // 100
 indicies = random.sample(xrange(len(data)), k)
 new_list1 = [list1[i] for i in indicies]
 new_list2 = [list2[i] for i in indicies]

Q. in my actual use case this is subsampling from 145,000 items. Furthermore, is randrange sufficiently free of bias at this scale?

A.在 Python 2 和 Python 3 中,random.randrange()函数完全消除了偏差(它使用内部_randbelow()进行多次随机选择直到找到无偏差结果的方法)。

在 Python 2 中,随机抽样()函数略有偏差,但仅限于最后 53 位的舍入。在 Python 3 中,随机抽样()函数使用内部_randbelow()方法且无偏差。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用python从列表中随机提取x个项目 的相关文章

  • Python、Tkinter、更改标签颜色

    有没有一种简单的方法来更改按钮中文本的颜色 I use button text input text here 更改按下后按钮文本的内容 是否存在类似的颜色变化 button color red Use the foreground设置按钮
  • 将字符串转换为带有毫秒和时区的日期时间 - Python

    我有以下 python 片段 from datetime import datetime timestamp 05 Jan 2015 17 47 59 000 0800 datetime object datetime strptime t
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 我可以有效地从 HashSet 中随机采样吗?

    我有一个std collections HashSet 我想采样并删除一个均匀随机的元素 目前 我正在做的是使用随机抽样索引rand gen range 然后迭代HashSet到该索引来获取元素 然后我删除选定的元素 这可行 但效率不高 有
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • Nuitka 未使用 nuitka --recurse-all hello.py [错误] 编译 exe

    我正在尝试通过 nuitka 创建一个简单的 exe 这样我就可以在我的笔记本电脑上运行它 而无需安装 Python 我在 Windows 10 上并使用 Anaconda Python 3 我输入 nuitka recurse all h
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar

随机推荐

  • 使用 psutil 终止进程

    我正在编写一些代码 根据进程的名称和所有者来终止进程 这在 Windows XP 上运行良好 但当我在 Windows 7 上运行相同的代码时 在尝试获取进程的用户名时出现 访问被拒绝 错误 有没有更简单的方法来终止在 XP 和 Win7
  • 变分自动编码器:Keras 中的实现预热

    我最近读过这张纸它引入了一个称为 预热 WU 的过程 该过程包括将 KL 散度中的损失乘以一个变量 该变量的值取决于纪元数 从 0 到 1 线性演化 我想知道这是否是做到这一点的好方法 beta K variable value 0 0 d
  • 在第一次声明后将函数声明为默认函数

    In 8 4 2 Explicitly defaulted functions dcl fct def default 标准的 显式默认函数和隐式声明函数是 统称为默认函数 并且实现应 为它们提供隐式定义 12 1 12 4 12 8 这可
  • Azure Web Api - 每 4 分钟和 30 分钟等待一次 Sql 连接

    在 ApiController 上的请求中 我跟踪等待 Sql 连接打开的持续时间 await t TrackDependencyAsync async gt await sqlConnection OpenAsync return tru
  • PostgreSQL 日期范围未正确使用索引

    我有一个简单的表 其中有一个带有日期类型的 user birthday 字段 可以是 空值 CREATE TABLE users user id bigserial NOT NULL user email text NOT NULL use
  • org.springframework.context.ConfigurableApplicationContext 类型无法解析

    当我尝试在 Spring Tool Suite 中创建第一个应用程序时 出现以下错误 该行有多个标记 org springframework context ConfigurableApplicationContext 类型无法解析 这是
  • Rails:从列中选择唯一值

    我已经有了一个可行的解决方案 但我真的很想知道为什么这不起作用 ratings Model select rating uniq ratings each r puts r rating 它选择但不打印唯一值 而是打印所有值 包括重复项 它
  • 我可以在 C++ 中创建一个新运算符吗?如何创建?

    MATLAB 数组支持矩阵运算和元素运算 例如 M N and M N 这是区分两种不同操作的非常直观的方法 如果我想在C 中实现类似的操作 我该怎么做 我可以创建一个新的运算符吗 也 如果是 有人可以给我一些指导吗 不 你不能超载op C
  • 如何从 if 语句中获取类模板的实例? (C++)

    假设我有一个类模板 其中有一个成员pData 这是一个AxB任意类型的数组T template
  • 是否可以将喷气背包中的一排边缘倒圆?

    这就是我想要实现的目标 因此 我连续创建了 2 个圆形按钮 并根据是否选择它们提供了不同的背景颜色 目标是创建一种选项卡 切换的错觉 未选中的按钮将具有与该行的背景颜色相同的颜色 不幸的是 由于行是矩形形状 因此在拐角处有残留空间 仍然显示
  • 抑制整个脚本的错误

    我想抑制 VBS 登录脚本中可能出现的所有错误 我可以用以下内容包围整个 500 行脚本吗 On Error Resume Next whole script 500 lines of code On Error GoTo 0 You ca
  • 角度过滤器按字符匹配?

    我有角度 1 3 并且有以下数组 data id 2 name danny davids age 9 id 3 name sanny gordon age 9 我希望过滤器执行以下操作 当我开始写 s 这个词时 我希望 danny davi
  • 流 - 按属性和最大值收集

    问题陈述 给定以下课程 针对问题进行了简化 public static class Match private final String type private final int score public Match String ty
  • 如何在android中获取浏览器历史记录?

    我想实现一个应用程序来获取android默认浏览器历史记录并将浏览器历史记录保存到xml文件中 但是浏览器历史记录在某些设备中没有保存到xml文件中 我已经实现了我的应用程序来获取浏览器历史记录信息以保存到 xml 文件 如下所示 priv
  • 使用表单更新谷歌电子表格上的现有数据?

    我想建立一种自动系统来更新锦标赛的一些比赛结果 我有一个自动电子表格 显示了所有结果 但更新所有结果需要花费很多时间 所以我想知道是否可以制作一个表格以便更轻松地更新它们 在表格中 我将输入车手姓名和他在比赛中赢得的积分 锦标赛每月有 4
  • Python 中的递归生成器

    我编写了一个函数来返回一个生成器 其中包含给定长度的子字符串的每个唯一组合 这些子字符串包含主字符串中的 n 个以上元素 举例来说 如果我有 abcdefghi 和长度为 2 的探针 并且每个列表有 4 个元素的阈值 我想得到 ab cd
  • 捕获所有 JavaScript 错误并将其发送到服务器 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我想知道是否有人有在全局范围内处理 JavaScript 错误并将其
  • Django 中两个模型之间的多对多关系

    我正在尝试建立一个网站 用户可以添加他们正在学习的课程 我想知道应该如何添加ManyToMany关系 这样我们就可以根据课程代码或讲师或任何字段获取课程中的所有用户 我们还可以获取用户注册的课程 目前 我的数据库结构是 class Cour
  • 不同型号手机上的布局

    最近我为 Galaxy 10 1 7 英寸 1024x600 480x800 Note 800 高度和 S3 720 高度开发了一个应用程序 它们都在这些分辨率上完美运行 但当我们谈论 Note 2 和 Galaxy 7 Plus 等设备时
  • 使用python从列表中随机提取x个项目

    从两个列表开始 例如 lstOne 1 2 3 4 5 6 7 8 9 10 lstTwo 1 2 3 4 5 6 7 8 9 10 我想让用户输入他们想要提取的项目数量 占整个列表长度的百分比 以及从每个列表中随机提取的相同索引 例如 假