如何从一个文件中读取随机行?

2023-12-06

有内置方法可以做到这一点吗?如果不是,我怎样才能在不花费太多开销的情况下做到这一点?


不是内置的,而是算法R(3.4.2)(Waterman 的“Reservoir Algorithm”)来自 Knuth 的“计算机编程的艺术”很好(非常简化的版本):

import random

def random_line(afile):
    line = next(afile)
    for num, aline in enumerate(afile, 2):
        if random.randrange(num):
            continue
        line = aline
    return line

The num, ... in enumerate(..., 2)迭代器产生序列 2, 3, 4...randrange因此将为 0,概率为1.0/num-- 这就是我们必须替换当前所选行的概率(引用算法的样本大小为 1 的特殊情况 -- 请参阅 Knuth 的书以获取正确性证明 == 当然,我们也遇到以下情况一个足够小的“水库”以适合内存;-))...以及我们的概率do so.

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

如何从一个文件中读取随机行? 的相关文章

  • 用于将 cython 中的许多 C++ 类包装到单个共享对象的项目结构

    我在文档 邮件列表和这个问题在这里 https stackoverflow com questions 10300660 cython and distutils 但我想得到一个更直接的答案来解决我的具体情况 我正在通过尝试一点一点地包装我
  • 无法“安装”plpython3u - postgresql

    我正在尝试在 postgresql 中使用 python 语言 像这样的事情 create or replace function test a integer returns integer as if a 2 0 return even
  • 使用 pythonbrew 编译 Python 3.2 和 2.7 时出现问题

    我正在尝试使用构建多个版本的 python蟒蛇酿造 http pypi python org pypi pythonbrew 0 7 3 但我遇到了一些测试失败 这是在运行的虚拟机上 Ubuntu 8 04 32 位 当我使用时会发生这种情
  • Python 中的 Lanczos 插值与 2D 图像

    我尝试重新缩放 2D 图像 灰度 图像大小为 256x256 所需输出为 224x224 像素值范围从 0 到 1300 我尝试了两种使用 Lanczos 插值来重新调整它们的方法 首先使用PIL图像 import numpy as np
  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • Spark KMeans 无法处理大数据吗?

    KMeans 有几个参数training http spark apache org docs latest api python pyspark mllib html highlight kmeans pyspark mllib clus
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐

  • 检查 null Boolean 是否为 true 会导致异常

    我有以下代码 Boolean bool null try if bool DoSomething catch Exception e System out println e getMessage 为什么我对布尔变量 bool 的检查会导致
  • 如何在CF3.5中使用HtmlDocument

    我正在开发一个在 Windows CE 上运行的设备 我需要自动化登录过程 我能够使用下面的代码在表单应用程序中实现此目的 但似乎我无法在智能设备上使用相同的过程 在CE工作时有没有办法做同样的事情 string butts webBrow
  • 提取矩阵的对角线(非对角线)元素

    可能这个问题太简单了 但我找不到实用的答案 我们如何提取R中任意方阵的相反对角线元素 在下面的示例中 将是 7 2 8 r lt matrix c 1 5 8 1 3 7 9 3 一种方法可能是 r n lt nrow r 2 1 n n
  • 如何在不使用其他寄存器的情况下镜像一个字节?

    假设我在 AL 中有这个字节 01100001申请后mirror函数我想要的字节是10000110 我提出的所有想法都必须使用其他寄存器 但我很好奇是否有一种方法可以在不使用任何其他寄存器的情况下镜像字节 代码中立即存储 变体 mirror
  • 如何将 minOccurs 设置为 1

    我正在构建 ASP NET Web 服务 我的代码定义如下 但我不知道如何使用 wsdl 指定 FirstName 和 LastName 属性的 minOccurs 我想要那些需要的 并且不能为空 是否可以 WebMethod public
  • 我可以更改 Android 设备的 LED 强度吗?

    有没有办法设置我想要的 LED 强度 我知道要打开 LED 我使用 p setFlashMode Camera Parameters FLASH MODE TORCH mycam setParameters p 但这段代码只是打开 LED
  • 使用 Python 和 lxml 根据外部 DTD 验证 XML

    我正在尝试根据 doctype 标记中引用的外部 DTD 验证 XML 文件 具体来说 the rest of the document 我正在使用 Python 3 3 和 lxml 模块 来自阅读http lxml de validat
  • 当“Model”实例是在启用急切模式的情况下构造的时,不支持在图形模式下调用“Model.predict”

    所以我只是跟随某人的项目并在收到此错误时到达这里 2020 10 12 15 33 21 128 ERROR in app Exception on predict POST Traceback most recent call last
  • 无法更改网状中的Python路径

    启动 rstudio 会话时运行的第一行是 library reticulate use python usr local lib python3 6 site packages 然而 当我跑步时py config 它显示仍在使用默认的 p
  • 使用 Objective C 将文本字符串插入 NSTextView 中的光标位置或选择的文本

    我如何使用 Objective C 和 cocoa 使用 Xcode 来做到这一点 我试图在单击按钮时在光标处或用户选择处插入一个字符串 NSTextView 有一个方法 insertText 可以执行您想要的操作 myTextView i
  • 使用 PyQt 动态将项目设置为 QML ListModel

    我有一个代表时间表的 QML 它从数据库获取值 所以我需要插入值ListModel来自我的Python代码 QML 看起来像这样 function append newElement scheduleList model append ne
  • 如何在正则表达式中定义空格(在 awk 中)?

    我想打印里面的文字 例如我有以下字符串 gfdg jkfgh jkfd fdgj fd ghjhgj gfggf kfdjfdgfhbg fhfghg jhgj jhfjhg dfgdf fgf fgfdg dfj jfdg jhfgjd
  • 如何使用Kivy制作ToolTip?

    我想看到工具提示Qt当鼠标指针悬停在图标上时操作栏 是的 我可以使用mode spinner 但图标更好 您可以改进和扩展的一个简单示例 from kivy app import App from kivy lang import Buil
  • 将进程 ID 添加到 log4cxx 中的日志文件名中

    在 log4net 中 我可以轻松地将进程 ID 设置为从配置中轻松记录文件名
  • 无循环求和

    I have following double summation 10 i 1 i j 1 i 5 10 j i 我对这个练习很迷茫 我尝试了下面的代码 但尽管给了我一个数字 但它返回了一个错误 很确定它不正确 任何帮助都非常有价值 i
  • 如何获取 Facebook 视频的观看次数

    我首先使用 facebook graph api 获取全局视频视图 然后我想尝试单独的视频视图 但是当我尝试以下语法时 获取 v2 5 object id insights page video views 我得到这个答案 data pag
  • 用于命名空间扩展的图标覆盖处理程序

    我正在开发命名空间扩展 它提供服务器上文件的虚拟视图 在此视图中 我需要使用覆盖图标提供文件的不同状态 正在使用 离线 不同步等 我阅读了实现覆盖处理程序的文章 并认为我将尝试在我们的覆盖处理程序之一中处理此问题 该处理程序实现 IShel
  • 如何使用Cookie检查用户是否已经登录?

    我想知道如何检测用户是否已经登录 使用cookie 我没有使用任何登录控件 我有一个数据库可以检查 ID 和 PWD 另请告诉我是否可以在不使用 cookie 的情况下完成 任何代码或链接都会有帮助 网络配置
  • Android 下拉颜色选择器

    我想创建一个下拉颜色选择器 如下所示 抱歉图像丑陋 我只需要一些颜色 比方说 6 种 所以我不需要完整的颜色选择器 下拉菜单就可以正常工作 我知道我必须扩展 Spinner 的阵列适配器并覆盖获取下拉视图 and getView 我不知道的
  • 如何从一个文件中读取随机行?

    有内置方法可以做到这一点吗 如果不是 我怎样才能在不花费太多开销的情况下做到这一点 不是内置的 而是算法R 3 4 2 Waterman 的 Reservoir Algorithm 来自 Knuth 的 计算机编程的艺术 很好 非常简化的版