在程序的前面,我计算了矩阵p和K。我需要PKP的特征值。因为这需要一段时间(这是一个10000 x 10000的矩阵),所以我想把结果保存到某个地方,这样即使我重新启动计算机也可以很容易地访问它。你知道吗
我的程序的最后两行是:
eigs=np.linalg.eig(P@K@P)
np.savetxt('eigdata.txt',eigs)
这会触发错误:
ValueError: could not broadcast input array from shape (10000,10000) into shape (10000)
删除最后一次会删除错误,因此问题肯定出在np.savetxt
。你知道吗
我该怎么解决这个问题?你知道吗
谢谢
使用
eig
中的一个简单示例:或者没有关键字名称:
我怀疑,如果出现pickle错误,是因为要保存元组或字典之类的对象:
最近的numpy版本对这个pickling参数很挑剔。你知道吗
或者可以将数组保存到两个文件中:
===
使用:
这个错误是由
np.array(eigs)
步骤产生的。np.save
用于保存数组。给定一个元组,它试图将其转换为数组。你知道吗保存
*eigs
类似于上面的In [339]
示例:np.linalg.eig
输出两个np.ndarray
其中一个是shape(1000,1000),第二个是shape(1000,1000)。 您应该将它们保存到不同的文件中,或者使用np.savez
或np.savez_compressed
istead:以后再恢复:
相关问题 更多 >
编程相关推荐