增量附加 numpy.arrays 到保存文件

2023-12-24

我已经尝试过 Hpaulji 概述的这种方法,但它似乎不起作用:

如何在python中将多个numpy文件附加到一个numpy文件中 https://stackoverflow.com/questions/42204368/how-to-append-many-numpy-files-into-one-numpy-file-in-python

基本上,我正在迭代生成器,对数组进行一些更改,然后尝试保存每个迭代的数组。

我的示例代码如下所示:

filename = 'testing.npy'

with open(filename, 'wb') as f:
    for x, _ in train_generator:
        prediction = base_model.predict(x)
        print(prediction[0,0,0,0:5])
        np.save(filename, prediction)

        current_iteration += 1
    if current_iteration == 5:
        break

在这里,我经历了 5 次迭代,所以我希望能够保存5不同的数组。

我打印出了每个数组的一部分,用于调试目的:

[ 0.  0.  0.  0.  0.]
[ 0.          3.37349415  0.          0.          1.62561738]
[  0.          20.28489304   0.           0.           0.        ]
[ 0.  0.  0.  0.  0.]
[  0.          21.98013496   0.           0.           0.        ]

但是当我尝试加载数组时,如此处所述多次,如何在python中将多个numpy文件附加到一个numpy文件中 https://stackoverflow.com/questions/42204368/how-to-append-many-numpy-files-into-one-numpy-file-in-python,我收到 EOFERROR:

file = r'testing.npy'

with open(file,'rb') as f:
    arr = np.load(f)
    print(arr[0,0,0,0:5])
    arr = np.load(f)
    print(arr[0,0,0,0:5])

它只输出最后一个数组,然后输出 EOFERROR:

[  0.          21.98013496   0.           0.           0.        ]
EOFError: Ran out of input

print(arr[0,0,0,0:5])

我原本期望保存所有 5 个数组,但是当我多次加载 save .npy 文件时,我只得到最后一个数组。

那么,我应该如何保存新数组并将其附加到文件中?

编辑:使用“.npz”进行测试仅保存最后一个数组

filename = 'testing.npz'

current_iteration = 0
with open(filename, 'wb') as f:
    for x, _ in train_generator:
        prediction = base_model.predict(x)
        print(prediction[0,0,0,0:5])
        np.savez(f, prediction)



        current_iteration += 1
        if current_iteration == 5:
            break


#loading

    file = 'testing.npz'

    with open(file,'rb') as f:
        arr = np.load(f)
        print(arr.keys())


>>>['arr_0']

您所有的来电np.save使用文件名,而不是文件句柄。 由于您不重复使用文件句柄,因此每次保存都会覆盖文件,而不是将数组附加到文件中。

这应该有效:

filename = 'testing.npy'

with open(filename, 'wb') as f:
    for x, _ in train_generator:
        prediction = base_model.predict(x)
        print(prediction[0,0,0,0:5])
        np.save(f, prediction)

        current_iteration += 1
    if current_iteration == 5:
        break

虽然将多个数组存储在一个数组中可能有一些优点.npy文件(我想象在内存有限的情况下的优势),它们是技术上的意思是 https://docs.scipy.org/doc/numpy-dev/neps/npy-format.html存储一个数组,您可以使用.npz files (np.savez or np.savez_compressed) 存储多个数组:

filename = 'testing.npz'
predictions = []
for (x, _), index in zip(train_generator, range(5)):
    prediction = base_model.predict(x)
    predictions.append(prediction)
np.savez(filename, predictions) # will name it arr_0
# np.savez(filename, predictions=predictions) # would name it predictions
# np.savez(filename, *predictions) # would name it arr_0, arr_1, …, arr_4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

增量附加 numpy.arrays 到保存文件 的相关文章

随机推荐

  • 从命名范围的 Name 对象获取工作表名称

    I have Microsoft Office Interop Excel Workbook wb Microsoft Office Interop Excel Name name 假设我已经获得了命名范围的 Name 对象和 wb 有什么
  • 创建视图还是使用内部联接?

    我有一个规范化的数据库 其中外键 主键提供一对多数据库 我计划使用 PHP 访问该数据库以进行基本的前端 后端显示 现在 我的问题来自这两个示例查询 CREATE VIEW view AS SELECT functiondetails De
  • 在 Visual Studio 2010 中运行的 Windows Phone 8 SDK

    我知道这个 SDK 还没有完成 但是一些幸运的开发人员已经拿到了它 所以我的问题是 当您安装 Windows Phone 8 SDK 时 它是否也在 Visual Studio 2010 中安装了 SDK 或者只是在 Visual Stud
  • 在cuda中是否有更好/更干净/更优雅的malloc和free方式?

    我正在尝试 cudaMalloc 一堆设备指针 如果任何 malloc 不起作用 则优雅地退出 我有功能代码 但臃肿 因为如果失败 我必须 cudaFree 我之前 malloc 的所有内容 所以现在我想知道是否有更简洁的方法来实现这一点
  • 如何将 dtype='datetime64[ns]' 转换为浮点数?

    我正在练习线性回归 在这里我将日期作为输入 x 传递并期望输出 y float x df Date values x x reshape 1 1 y df MeanTemp values MeanTemp column has float
  • 在 C# 中转换为泛型类型失败

    我希望通过创建动态 GetControl 方法来节省一些编码 我的想法是这样的 private T GetControl
  • Rust:为关联类型实现特征“From”(错误)

    这是我之前问题的后续问题 Rust 从标准输入读取和映射行并处理不同的错误类型 https stackoverflow com questions 59187274 rust read and map lines from stdin an
  • CSS 类选择器通配符[重复]

    这个问题在这里已经有答案了 所以我想知道是否有办法在 CSS 中添加通配符 我有几个课程是 button 0 button 1 button 2 button 3等在一个button元素 我想得到所有 button 类来定义 是否可以做类似
  • 提取括号之间文本的模式

    如何从中提取字符串 and 使用模式匹配或任何东西 例如 如果文本是 你好 Java 那么如何只得到 Java 尝试这个 String x Hello Java Matcher m Pattern compile matcher x whi
  • 我可以使用客户端 Javascript 执行 DNS 查找(主机名到 IP 地址)吗?

    我想使用客户端 Javascript 来执行从客户端计算机看到的 DNS 查找 主机名到 IP 地址 那可能吗 Edit 这个问题让我很痒 所以我在 Google App Engine 上建立了一个 JSON Web 服务来返回客户端的 I
  • FFmpeg-Python 音频在最终视频中丢失

    我试图将视频放置在背景图像之上 但生成的输出视频没有音频 有什么办法可以让音频保持原样吗 def ConvertVideo source background start end dest stream ffmpeg input sourc
  • 奇怪的 while 语句行为?

    我不明白为什么以下陈述不起作用 randomKey random choice list topic keys randomValue random choice topic randomKey current len randomValu
  • 在一个 Android 应用程序中拥有多个 SQLiteOpenhelper

    我想知道是否可以在同一个 Android 应用程序中拥有多个 DbOpenHelper 但使用它们在同一个数据库中写入和读取 因为我试图从 2 个不同的 OpenHelper 具有不同的名称 创建表 但似乎只有第一个可以创建 当我尝试运行第
  • CKNotificationInfo soundName 不起作用

    Sbuscription 的创建如下 可以用 但是没有声音 为什么 医生说 if you specify the string default for this property the system plays the default a
  • 如何在Java中获取特定年份的所有星期日的日期?

    我正在认真寻找这段代码 我是新程序员 实际上我想让所有日期都带有标志 这些日期都是特定年份的星期日 请 我热切地等待您的回复 创建一个新日历 将时间设置为 1 1 yyyy 和某个时间 检查当前日期是否为星期日 然后向前滚动一天 直到星期日
  • 如何让 djangorestframework 使用格式后缀返回 xml?

    我可以让 djangorestframework 通过格式后缀 json 返回 json 但不能通过 xml 后缀返回 xml http 127 0 0 1 8000 chat rooms json id 1 timestamp 2013
  • memmem() STL 方式?

    是否有 STL 算法可用于像 memmem 一样搜索缓冲区内的字节序列 我不知道这是否是好的代码 但是以下代码可以使用std search http www cplusplus com reference algorithm search
  • Xcode 4.2 中的未知类型名称“命名空间”

    我正在编译QCAR SDK 但是当我向项目中添加更多框架后 它提示错误 Matrices h ifndef QCAR MATRIX H define QCAR MATRIX H namespace QCAR Matrix with 3 ro
  • PHP MP3 标签处理

    我有一个 php 脚本 我想提供其中的音乐列表 这些文件被命名为 01 mp3 02 mp3 和 03 mp3 等 他们都有标签信息 我的问题是如何在我的 php 脚本中访问它 您需要一个脚本来解析 mp3 文件以访问数据 来自谷歌 htt
  • 增量附加 numpy.arrays 到保存文件

    我已经尝试过 Hpaulji 概述的这种方法 但它似乎不起作用 如何在python中将多个numpy文件附加到一个numpy文件中 https stackoverflow com questions 42204368 how to appe