编程语言
首页 > 编程语言> > python-CSR矩阵中元素的总和

python-CSR矩阵中元素的总和

作者:互联网

我想找到一种方法来操作scipy.sparse.csr_matrix,以便基于该列获取其元素的总和.例如,如果我有这个:

  (2, 883)  0.0194935608679
  (10, 883) 0.193169152693
  (11, 883) 0.1099280996
  (18, 883) 0.231353403277
  (11, 884) 0.151292618076
  (12, 885) 0.0897609047606
  (15, 885) 0.105370721749
  (10, 886) 0.116845834609
  (18, 886) 0.069971527852
  (0, 947)  0.111838970767
  (1, 947)  0.0694444065422
  (2, 947)  0.0440324424809
  (4, 947)  0.0233598916271
  (5, 947)  0.301621257244
  (6, 947)  0.0546866477512
  (7, 947)  0.162040885384
  (9, 947)  0.0786245669428
  (10, 947) 0.130900295682
  (11, 947) 0.0496615549666
  (12, 947) 0.100557533892
  (13, 947) 0.114494053085
  (14, 947) 0.0535641315858
  (15, 947) 0.0393483107586
  (16, 947) 0.0207896459813
  (17, 947) 0.0538302241537
  : :

列883的总和为0.5539442164

解决方法:

您可以这样做:

mymatrix[:,883].sum()

值得注意的是,如果您打算进行列式操作,则csc_matrix类型会更快.例如:

r = np.random.random((1000,1000))

a = csr_matrix(r)
b = csc_matrix(r)

In [20]: timeit a[:,88].sum()
1000 loops, best of 3: 1.88 ms per loop

In [21]: timeit b[:,88].sum()
10000 loops, best of 3: 129 us per loop

对于逐行操作,应坚持使用csr_matrix类型.

标签:scipy,sparse-matrix,python
来源: https://codeday.me/bug/20191122/2063667.html