gpt4 book ai didi

python - 如何检查 SciPy CSR 矩阵是否为空(即仅包含零)?

转载 作者:太空狗 更新时间:2023-10-30 02:10:02 24 4
gpt4 key购买 nike

检查 SciPy CSR matrix 是否正常的规范方法是什么?是空的(即只包含零)?

我使用 nonzero():

def is_csr_matrix_only_zeroes(my_csr_matrix):
return(len(my_csr_matrix.nonzero()[0]) == 0)

from scipy.sparse import csr_matrix
print(is_csr_matrix_only_zeroes(csr_matrix([[1,2,0],[0,0,3],[4,0,5]])))
print(is_csr_matrix_only_zeroes(csr_matrix([[0,0,0],[0,0,0],[0,0,0]])))
print(is_csr_matrix_only_zeroes(csr_matrix((2,3))))
print(is_csr_matrix_only_zeroes(csr_matrix([[0,0,0],[0,1,0],[0,0,0]])))

输出

False
True
True
False

但我想知道是否存在更直接或更有效的方法。

(相关但不同:Check if scipy sparse matrix entry exists)

最佳答案

my_csr_matrix.nnz == 0

nnz attribute记录非零条目的数量...除非您的 CSR 矩阵采用奇怪的非规范化形式,例如,如果它具有重复的条目或明确存储的零。

如果您必须处理重复的条目或明确的零,您可以使用更昂贵的 csr_matrix.count_nonzero method :

my_csr_matrix.count_nonzero() == 0

关于python - 如何检查 SciPy CSR 矩阵是否为空(即仅包含零)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32578035/

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