gpt4 book ai didi

python - CSR 矩阵中元素的总和

转载 作者:行者123 更新时间:2023-11-28 16:42:07 33 4
gpt4 key购买 nike

我想找到一种方法来操作 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 类型。

关于python - CSR 矩阵中元素的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18104816/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com