如何在python中创建一个大的矩阵矩阵?

时间:2017-01-08 17:00:27

标签: python numpy matrix hdf5 pytables

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

然而,我的矩阵的元素是尺寸为5 * 5的实际值的小矩阵。

我已经查看了以下帖子,但我想知道是否有其他方法可以在表格中存储此类数据?

Create a larger matrix from smaller matrices in numpy

提前谢谢

1 个答案:

答案 0 :(得分:2)

numpy中有两个相关的结构。

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

最简单的方法是在4d数组上进行数学运算,例如在所有5x5子阵列中取平均值,或找到所有5 {5}个角落的平均值。

如果你的子数组都是5x5,那么创建和填充[:,:,0,0]数组可能会很棘手。 object尝试尽可能创建该4dim数组。

使用np.array(...),您可以对文件进行分块,并访问较大阵列的部分内容。但你仍然必须有一个可行的numpy表示来做任何事情。