python bsr构造函数矩阵中的索引指针长度错误

2024-05-14 00:42:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难理解这个错误。我以BSR格式在python scipy.linalg中构建了一个稀疏线性构造器。(欲了解更多信息:BSR matrix scipy

下面是我在错误中得到的一行:

File "/home/tcimic/INRIA/ALS_CMB/ALS_functions.py", line 289, in __init__
self.P = sp.bsr_matrix((data,ij),shape=(nb_row,nb_col))
File "/scratch/tcimic/miniconda3/envs/toast/lib/python3.8/site-packages/scipy/sparse/bsr.py", line 212, in __init__
self.check_format(full_check=False)
File "/scratch/tcimic/miniconda3/envs/toast/lib/python3.8/site-packages/scipy/sparse/bsr.py", line 247, in check_format
raise ValueError("index pointer size (%d) should be (%d)" %
ValueError: index pointer size (2285732) should be (15906)

但是,当我打开init并检查bsr.py文件中的\u format函数时,我自己进行计算,不应该得到这个奇数2285732。您可以在此处找到具有不同行号的相同文件:source code of bsr.py

基本上,有一个元组名blocksize=(R,C)和一个元组形状=(M,N),还有一个指针indptr,其长度设置为M//R+1,但M//R+1在我的例子中不是2285732,实际上是15906。。。顺便说一句,如果没有给出,blocksize=(1,1)

我不知道该怎么办

Thks寻求此问题的建议和解决方案

平静下来


Tags: inpyselfformatinitcheck错误line