【问题标题】:Store multiple two dimensional arrays in Python在 Python 中存储多个二维数组
【发布时间】:2019-09-10 04:12:31
【问题描述】:

我想知道例如我是否有 5 个 100 x 1 的 numpy 数组、4 个 100 x 3 的 numpy 数组、3 个 100 x 5 的 numpy 数组和 4 个 100 x 6 的数组。什么是最有效的存储方式所有这些矩阵?我只能为每个数组设置一个 numpy 数组,但这效率不高。我无法将它们存储在 3D 数组中,因为矩阵具有不同的维度。有关如何有效存储它们的任何建议?

【问题讨论】:

  • 你不能对所有这些都使用列表或对具有相同大小的数组使用列表吗?
  • 除了“每个一个数组”之外,还有什么效率不高? savez 是存储数组集合的好方法。将stack 数组转换为 (5,100,1)、(4,100,3) 等数组可能会很方便。 load 这样可能更简单。 HDF5 通过h5py 也是可能的。或者将所有内容放在一个列表中并使用pickle

标签: python arrays list numpy


【解决方案1】:

假设您说的是磁盘存储效率。

NumPy 有一个名为savez 的内置方法,可用于将多个数组保存到磁盘。如果您担心文件大小,savez_compressed 可以实现较小的改进

如果您确实在启用pickle 的情况下保存了数组,请确保在尝试加载已保存的.npy.npz 文件时包含allow_pickle=True

HDF5 绝对是一种选择,但通常用于真正的大型异构数据集合。从表面上看,您有一些齐次矩阵,可以使用上述工具轻松管理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 2016-10-14
    • 2014-01-04
    • 2014-11-11
    • 1970-01-01
    • 2013-01-10
    相关资源
    最近更新 更多