gpt4 book ai didi

python - 如何访问稀疏矩阵元素?

转载 作者:IT老高 更新时间:2023-10-28 21:47:31 27 4
gpt4 key购买 nike

type(A)
<class 'scipy.sparse.csc.csc_matrix'>
A.shape
(8529, 60877)
print A[0,:]
(0, 25) 1.0
(0, 7422) 1.0
(0, 26062) 1.0
(0, 31804) 1.0
(0, 41602) 1.0
(0, 43791) 1.0
print A[1,:]
(0, 7044) 1.0
(0, 31418) 1.0
(0, 42341) 1.0
(0, 47125) 1.0
(0, 54376) 1.0
print A[:,0]
#nothing returned

现在我不明白的是 A[1,:] 应该从第二行中选择元素,但我通过 print A[1, :]。此外, print A[:,0] 应该返回第一列,但我什么也没打印。为什么?

最佳答案

A[1,:] 本身就是一个形状为 (1, 60877) 的稀疏矩阵。 这个就是你要打印的,它只有一行,所以所有的行坐标都是0。

例如:

In [41]: a = csc_matrix([[1, 0, 0, 0], [0, 0, 10, 11], [0, 0, 0, 99]])

In [42]: a.todense()
Out[42]:
matrix([[ 1, 0, 0, 0],
[ 0, 0, 10, 11],
[ 0, 0, 0, 99]], dtype=int64)

In [43]: print(a[1, :])
(0, 2) 10
(0, 3) 11

In [44]: print(a)
(0, 0) 1
(1, 2) 10
(1, 3) 11
(2, 3) 99

In [45]: print(a[1, :].toarray())
[[ 0 0 10 11]]

可以选择列,但是如果列中没有非零元素,用print输出时什么都不显示:

In [46]: a[:, 3].toarray()
Out[46]:
array([[ 0],
[11],
[99]])

In [47]: print(a[:,3])
(1, 0) 11
(2, 0) 99

In [48]: a[:, 1].toarray()
Out[48]:
array([[0],
[0],
[0]])

In [49]: print(a[:, 1])


In [50]:

最后一次 print 调用没有显示输出,因为列 a[:, 1] 没有非零元素。

关于python - 如何访问稀疏矩阵元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15115765/

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