我想打印稀疏矩阵的所有非零值,但它只打印头和尾的值。
我已经尝试使用 numpy 和 scipy**set_printoptions,但它没有做任何更改。
例如:
np.set_printoptions(threshold=np.inf, linewidth=np.inf, precision=5)
print(S_0)
当S_0是一个4096 × 4096的稀疏矩阵时。
它的打印:
(0, 1) 0.05473236104737437
(0, 63) 0.21776763895262571
(0, 64) 0.11669233874304108
(0, 65) 0.07099307125265637
(0, 127) 0.16239160623342577
(0, 4032) 0.15580766125695897
(0, 4033) 0.03847165084209235
(0, 4095) 0.27314367167182557
(0, 0) -0.09000000000000008
(1, 1) 1.0
(2, 1) 0.03201451256475778
(2, 3) 0.2404854874352423
(2, 65) 0.03313570631258726
(2, 66) 0.2433307472199537
(2, 67) 0.45352578812732014
(2, 4033) 0.03089331881692829
(2, 4034) 0.029169252780046343
(2, 4035) 0.027445186743164394
(2, 2) -0.09000000000000008
(3, 3) 1.0
(4, 3) 0.1780272480832952
(4, 5) 0.09447275191670479
(4, 67) 0.09857505006040893
(4, 68) 0.10065942747216487
(4, 69) 0.10274380488392083
: :
(4071, 4071) 1.0
(4072, 4072) 1.0
(4073, 4073) 1.0
(4074, 4074) 1.0
(4075, 4075) 1.0
(4076, 4076) 1.0
(4077, 4077) 1.0
(4078, 4078) 1.0
(4079, 4079) 1.0
(4080, 4080) 1.0
(4081, 4081) 1.0
(4082, 4082) 1.0
(4083, 4083) 1.0
(4084, 4084) 1.0
(4085, 4085) 1.0
(4086, 4086) 1.0
(4087, 4087) 1.0
(4088, 4088) 1.0
(4089, 4089) 1.0
(4090, 4090) 1.0
(4091, 4091) 1.0
(4092, 4092) 1.0
(4093, 4093) 1.0
(4094, 4094) 1.0
(4095, 4095) 1.0
我想让它打印所有值
有什么想法吗?
1条答案
按热度按时间f5emj3cl1#
有同样的问题和设置numpy打印选项不工作。以下工作对我来说。(测试scipy版本1.5.3和1.8.1)
根据文档,有一个函数
getmaxprint()
。查找源代码,它只返回类的属性maxprint
。默认值是50。2所以用无穷大覆盖它将导致打印没有限制。3你也可以在稀疏矩阵的构造函数中提供它。当查看类spmatrix
的函数__str__
时,您还可以看到打印字符串是如何创建的,spmatrix
是scipy的所有稀疏矩阵的基类(链接到代码)