将大型 NumPy 数组写入文件的有效方法

2024-02-18

我目前有一个在 PiCloud 上运行的项目,其中涉及 ODE 求解器的多次迭代。每次迭代都会生成一个约 30 行和 1500 列的 NumPy 数组,每次迭代都会附加到先前结果数组的底部。

通常,我只是让函数返回这些相当大的数组,将它们保存在内存中并一次性处理它们。ExceptPiCloud 对函数可以输出和返回的数据大小有相当严格的限制,以降低传输成本。这很好,但这意味着我必须启动数千个作业,每个作业都在迭代上运行,开销相当大。

看来最好的解决方案是将输出写入文件,然后使用他们拥有的另一个没有传输限制的函数收集文件。

我最好的选择是将其转储到 CSV 文件中吗?我应该在每次迭代中添加到 CSV 文件中,还是将其全部保存在一个数组中直到最后,然后只写入一次?我是否缺少一些非常聪明的东西?


除非有理由使中间文件可供人类阅读,否则请执行以下操作:not使用 CSV,因为这将不可避免地导致精度损失。

最有效的可能是tofile (doc http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.tofile.html#numpy.ndarray.tofile),用于在您提前知道数据的所有属性时将文件快速转储到磁盘。

对于独立于平台但特定于 numpy 的保存,您可以使用save (doc http://docs.scipy.org/doc/numpy/reference/generated/numpy.save.html#numpy.save).

如果您需要可移植性,Numpy 和 scipy 还支持各种科学数据格式,例如 HDF5。

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

将大型 NumPy 数组写入文件的有效方法 的相关文章

随机推荐

  • 挂起并序列化正在运行的线程

    有谁知道一种机制可以捕获正在运行的线程的状态并将其序列化以进一步恢复 有什么可用于 JVM 的吗 pthread 怎么样 我的主要目标是能够将正在运行的线程迁移到远程计算机 通过该线程的配合 您可以通过该线程支持的任何机制来完成此操作 没有
  • 使用c#将日期插入MySql

    我的 mysql 表中有日期字段 我想通过日期选择器控件插入日期 Windows 窗体 C 如何 当我尝试使用下面的方法时 出现错误 Code DB Insert Orders Convert ToInt32 txtA Text Conve
  • Android/phonegap - 拉伸我的背景图像以适合屏幕

    我尝试过各种不同的方法 但似乎都不起作用 我正在使用内联 CSS 只是想添加一个拉伸到屏幕尺寸的背景 我目前在我的 body 标记中使用以下代码 我的图像是 400 x 300 但需要拉伸到 1200 x 1000 希望有人可以提供帮助 已
  • Apache Apr 和 Apr-util 安装?

    我第一次在 ubuntu 12 04 中安装 Apache 我在链接中查找编译并安装apache http httpd apache org docs 2 4 install html 它说我们应该首先拥有 APR 和 APR util 我
  • 为什么这个性能计数器总是返回零? [复制]

    这个问题在这里已经有答案了 我有这个代码 using PerformanceCounter pfc new PerformanceCounter Processor Processor Time Total return pfc NextV
  • Backbone.js:将视图、集合、模型分离到不同的js文件中,它们无法相互识别

    我使用 Backbone js 创建一个 Web 应用程序 将所有视图 集合和模型写入一个 js 文件 成功了 现在我想将它们分成不同的js文件 就像
  • VBA Excel 文件转换为 CSV,保持 CSV 文件名与原始工作簿相同

    我正在努力寻找一种快速的方法来拯救我的xlsx文件为csv具有相同文件名的文件xlsx文件 就在csv格式 我已经用快捷方式录制了一个宏 但问题是 每当我尝试使用新文件时 它都会保存为与我录制初始宏相同的文件名 即见下文 可能是因为我在代码
  • 如何将数组转换为ARM模板中一个对象的属性?

    我正在寻找一种将数组 例如字符串 转换为一个对象的方法 其中属性是从数组值生成的 用例 我想生成一个tags基于资源名称列表的具有资源链接的对象 我需要这样做 以link App Service资源到一个Application Insigh
  • AWK 比较两个文件,如果匹配,则将新列从第二个文件添加到第一个文件

    我有问题 我想比较两个文件 第一个文件是参考 ABCA4 INHR AMT INHR BTK ONKO1 PAP ONKO2 第二个文件用于比较 3 1 2 T ENG1 ABCA4 ff 3 1 2 T ENG1 ABCA4 gg 5 1
  • HTML5 Canvas 和鼠标事件问题

    我正在尝试创建一个包含客户签名框的 HTML5 页面 这大部分用于平板电脑 这是通过 Canvas 元素和鼠标上的 JavaScript 事件来完成的 问题 1 Y 部分工作完美 但 X 部分仅在我将画布设置为 300 时才工作 如果宽度为
  • 使用 ANTLR 通过 Python 解析一些 Java 代码

    我想在 Python 中使用 ANTLR 构建一个 Java 解析器 我从 ANTLR 存储库下载了语法 Lexer https github com antlr grammars v4 blob master java java Java
  • XNA 中的四元数旋转

    我这样做对吗 显然不是因为否则我不会在这里发布问题 但我正在尝试围绕另一个模型对一个模型进行四元数旋转 假设我有一个具有向量 3 位置和浮动旋转角度的盒模型 我还有一个指向盒子模型的截头锥体模型 其位置可以说距盒子模型 50 个单位 平截头
  • EC2实例克隆

    是否可以克隆 EC2 实例数据以及全部数据 你可以做一个AMI http docs aws amazon com AWSEC2 latest UserGuide AMIs html现有实例 然后使用该实例启动其他实例AMI http doc
  • 在本地测试谷歌地图V3地理位置?

    我正在尝试在我的计算机上测试一些地理定位代码 但我什至无法运行这些示例 虽然它们从文档网站完美运行 但当我尝试从计算机打开 html 文件时 我得到一个空白页面 但我所做的就是尝试检测我的位置 这是代码
  • (新)收到GCM消息,但如何解析?

    我正在使用 新 GCM 它是 Google Play 服务的一部分 它不使用适用于 Android 和服务器的 jar Android 使用 Google Play apk 来注册 接收甚至发送消息 在服务器端 我们与 GCM 通信所需要做
  • 为什么选择 PRG 模式而不是其他模式?

    我需要防止为客户的网站重复提交表单 我们需要用户提供一些表单数据用于订单确认页面 我们对网络服务器使用负载平衡 方法 1 发布 重定向 获取 PRG pattern http en wikipedia org wiki Post Redir
  • 如何在 JavaScript 代码中获取数据属性的值?

    我有下一个html span span 是否可以获取以data 并将其用在JavaScript代码类似于下面的代码 现在我得到null结果 document getElementById the span addEventListener
  • 在 JAX-RS 资源中组合 @Context 和 @RolesAllowed?

    是否可以使用Context http docs oracle com javaee 6 api javax ws rs core Context html注释和允许的角色 https docs oracle com javaee 6 api
  • Valgrind 未显示错误使用 c_str() 的无效内存访问

    想象一下这样的代码 string f string r ab return r int main const char c f c str printf s n c return 0 这段代码可能会崩溃 对吧 因为那个字符串c指向被破坏 但
  • 将大型 NumPy 数组写入文件的有效方法

    我目前有一个在 PiCloud 上运行的项目 其中涉及 ODE 求解器的多次迭代 每次迭代都会生成一个约 30 行和 1500 列的 NumPy 数组 每次迭代都会附加到先前结果数组的底部 通常 我只是让函数返回这些相当大的数组 将它们保存