当前位置: 首页 > 面试题库 >

以追加模式保存numpy数组

袁良弼
2023-03-14
问题内容

是否可以保存一个numpy数组,将其附加到已经存在的npy文件中—类似于np.save(filename,arr,mode='a')

我有几个函数必须遍历大型数组的行。由于内存限制,我无法立即创建数组。为了避免一遍又一遍地创建行,我想创建每行一次并将其保存到文件中,然后将其追加到文件的上一行中。稍后,我可以在mmap_mode中加载npy文件,并在需要时访问切片。


问题答案:

内置.npy文件格式非常适合处理小型数据集,而无需依赖外部模块numpy

但是,当您开始拥有大量数据时,首选使用旨在处理此类数据集的文件格式(例如HDF5

例如,以下是numpy使用PyTables在HDF5中保存数组的解决方案,

步骤1:创建可扩展EArray存储

import tables
import numpy as np

filename = 'outarray.h5'
ROW_SIZE = 100
NUM_COLUMNS = 200

f = tables.open_file(filename, mode='w')
atom = tables.Float64Atom()

array_c = f.create_earray(f.root, 'data', atom, (0, ROW_SIZE))

for idx in range(NUM_COLUMNS):
    x = np.random.rand(1, ROW_SIZE)
    array_c.append(x)
f.close()

步骤2:将行追加到现有数据集(如果需要)

f = tables.open_file(filename, mode='a')
f.root.data.append(x)

步骤3:读回一部分数据

f = tables.open_file(filename, mode='r')
print(f.root.data[1:10,2:20]) # e.g. read from disk only this part of the dataset


 类似资料:
  • 问题内容: 我正在尝试使用附加值填充一个空的(不是np.empty!)数组,但我却报错: 我的代码如下: 我得到: 问题答案: 与list.append在python中非常不同。我知道这是numpy的一些新程序员所引发的。更像是连接,它创建一个新数组,并用旧数组中的值和要附加的新值填充它。例如: 我认为您可以通过执行以下操作来实现目标: 更新: 如果需要使用循环创建一个numpy数组,并且您不提前

  • 问题内容: 我有一个脚本,生成 带有和形状为的二维s 。现在,我正在使用阵列并执行IO操作。但是,这些功能对于每个阵列都需要花费几秒钟。是否有更快的方法来保存和加载整个数组(即,无需假设其内容并减少它们)?我愿意在保存之前将s转换为另一种类型,只要准确保留数据即可。 问题答案: 对于真正的大型阵列,我听说过几种解决方案,它们大多是对I / O懒惰: NumPy.memmap,将大数组映射为二进制形

  • 我正在本地机器中将spark数据集保存为拼花文件。我想知道是否有任何方法可以使用某种加密算法对数据进行加密。我用来将数据保存为拼花文件的代码如下所示。 <代码>数据集。写入()。模式(“覆盖”)。拼花地板 我看到了一个类似的问题,但我的查询不同,因为我正在写入本地磁盘。

  • 问题内容: 我正在将稀疏数组(压缩)保存到csv中。结果是我有一个3GB的CSV。问题是95%的单元格为0.0000。我用过。如何格式化和保存,使零仅保存为0,非零浮点数与格式一起保存?如果可以的话,我敢肯定我可以将3GB降低到300MB。 我在用 感谢和问候 问题答案: 如果看一下的源代码,您会看到,虽然有很多代码可以处理参数以及Python 2和Python 3之间的差异,但最终它还是一个简单

  • 译者 bruce1408 作者: Matthew Inkawhich 本文提供有关Pytorch模型保存和加载的各种用例的解决方案。您可以随意阅读整个文档,或者只是跳转到所需用例的代码部分。 当保存和加载模型时,有三个核心功能需要熟悉: torch.save: 将序列化对象保存到磁盘。 此函数使用 Python 的pickle模块进行序列化。使用此函数可以保存如模型、tensor、字典等各种对象。

  • 本文向大家介绍Numpy数组的保存与读取方法,包括了Numpy数组的保存与读取方法的使用技巧和注意事项,需要的朋友参考一下 1. 数组以二进制格式保存 np.save和np.load是读写磁盘数组数据的两个主要函数。默认情况下,数组以未压缩的原始二进制格式保存在扩展名为npy的文件中,以数组a为例 利用这种方法,保存文件的后缀名字一定会被置为.npy 2. 存取文本文件 使用 np.savetxt