我需要一个大小为(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矩阵,其中的存储不再是问题。
如何计算此矩阵?
您可以使用scipy.sparse.eye(对角线上带有1的稀疏矩阵:
from scipy import sparse
negative_eye = -sparse.eye(62500, 62500)