如何处理巨大的 numpy 数组的计算以避免内存分配错误?

我需要一个大小为(62500 x 62500)的负单位矩阵。使用 numpy 声明一个正常的单位矩阵就像一个魅力:


eye = np.eye(62500, 62500)

但是,做这样的事情


negative_eye1 = np.negative(np.eye(62500, 62500))

# or

negative_eye2 = np.eye(62500, 62500) * -1

将导致此错误


无法分配形状 (62500, 62500) 和数据类型 float64 的数组


然后在scipy.sparse.bmat()函数中使用该矩阵,从而生成一个 csr 矩阵,其中内存不再是这样的问题。


如何计算这个矩阵?


catspeake
浏览 80回答 1
1回答

萧十郎

您可以使用scipy.sparse.eye(对角线上的稀疏矩阵):from scipy import sparsenegative_eye = -sparse.eye(62500, 62500)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python