【问题标题】:How to create a large matrix of matrices in python?如何在python中创建一个大矩阵?
【发布时间】:2017-05-22 23:05:10
【问题描述】:

我正在处理一个大小为 m * n 的大型矩阵,m,n>100000。由于我的数据很大,我想将矩阵存储在内存中并使用 HDF5 和 PyTables。

但是,我的矩阵的元素是维度为 5*5 的实数值的小矩阵。

我已经看过下面的帖子,但我想知道是否有其他方法可以将这种类型的数据存储在表中?

(Create a larger matrix from smaller matrices in numpy)

提前谢谢你

【问题讨论】:

  • 你真的在使用一个 100,000*100,000 的矩阵,它的元素是 5*5 矩阵吗?
  • 为什么不用熊猫

标签: python numpy matrix hdf5 pytables


【解决方案1】:

numpy 中有两个相关的结构。

一个是 4 维数组,例如np.zeros((100,100,5,5),int)。另一个是二维对象数组。 np.zeros((100,100),dtype=object)。使用对象数组,元素可以是任何东西 - 字符串、数字、列表、您的 5x5 数组、其他 7x3 数组、None 等。

最简单的方法是对 4d 数组进行数学运算,例如取所有 5x5 子数组的平均值,或者找出所有的 [:,:,0,0] 角。

如果您的子数组都是 5x5,则创建和填充 object 数组可能会很棘手。 np.array(...) 尽可能尝试创建 4dim 数组。

使用h5py,您可以对文件进行分块,并访问较大数组的各个部分。但是你仍然必须有一个可行的 numpy 表示来对它们做任何事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 2023-04-02
    • 2019-03-23
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    相关资源
    最近更新 更多