打印scipy稀疏矩阵而不跳行

qyuhtwio  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(181)

我想打印稀疏矩阵的所有非零值,但它只打印头和尾的值。
我已经尝试使用 numpyscipy**set_printoptions,但它没有做任何更改。
例如:

  1. np.set_printoptions(threshold=np.inf, linewidth=np.inf, precision=5)
  2. print(S_0)

当S_0是一个4096 × 4096的稀疏矩阵时。
它的打印:

  1. (0, 1) 0.05473236104737437
  2. (0, 63) 0.21776763895262571
  3. (0, 64) 0.11669233874304108
  4. (0, 65) 0.07099307125265637
  5. (0, 127) 0.16239160623342577
  6. (0, 4032) 0.15580766125695897
  7. (0, 4033) 0.03847165084209235
  8. (0, 4095) 0.27314367167182557
  9. (0, 0) -0.09000000000000008
  10. (1, 1) 1.0
  11. (2, 1) 0.03201451256475778
  12. (2, 3) 0.2404854874352423
  13. (2, 65) 0.03313570631258726
  14. (2, 66) 0.2433307472199537
  15. (2, 67) 0.45352578812732014
  16. (2, 4033) 0.03089331881692829
  17. (2, 4034) 0.029169252780046343
  18. (2, 4035) 0.027445186743164394
  19. (2, 2) -0.09000000000000008
  20. (3, 3) 1.0
  21. (4, 3) 0.1780272480832952
  22. (4, 5) 0.09447275191670479
  23. (4, 67) 0.09857505006040893
  24. (4, 68) 0.10065942747216487
  25. (4, 69) 0.10274380488392083
  26. : :
  27. (4071, 4071) 1.0
  28. (4072, 4072) 1.0
  29. (4073, 4073) 1.0
  30. (4074, 4074) 1.0
  31. (4075, 4075) 1.0
  32. (4076, 4076) 1.0
  33. (4077, 4077) 1.0
  34. (4078, 4078) 1.0
  35. (4079, 4079) 1.0
  36. (4080, 4080) 1.0
  37. (4081, 4081) 1.0
  38. (4082, 4082) 1.0
  39. (4083, 4083) 1.0
  40. (4084, 4084) 1.0
  41. (4085, 4085) 1.0
  42. (4086, 4086) 1.0
  43. (4087, 4087) 1.0
  44. (4088, 4088) 1.0
  45. (4089, 4089) 1.0
  46. (4090, 4090) 1.0
  47. (4091, 4091) 1.0
  48. (4092, 4092) 1.0
  49. (4093, 4093) 1.0
  50. (4094, 4094) 1.0
  51. (4095, 4095) 1.0

我想让它打印所有
有什么想法吗?

f5emj3cl

f5emj3cl1#

有同样的问题和设置numpy打印选项不工作。以下工作对我来说。(测试scipy版本1.5.3和1.8.1)

  1. import numpy as np
  2. # ...
  3. # let's say your S_0 is your sparse matrix, then this helps:
  4. S0.maxprint = np.inf
  5. print(S0) # now prints all entries

根据文档,有一个函数getmaxprint()。查找源代码,它只返回类的属性maxprint。默认值是50。2所以用无穷大覆盖它将导致打印没有限制。3你也可以在稀疏矩阵的构造函数中提供它。当查看类spmatrix的函数__str__时,您还可以看到打印字符串是如何创建的,spmatrix是scipy的所有稀疏矩阵的基类(链接到代码)

相关问题