julia - 如何迭代稀疏数组的非零值

标签 julia sparse-matrix

我在 Julia 中有一个稀疏数组,想迭代它的非零条目。这样做的好方法是什么?

到目前为止,我有:

using SparseArrays

a = sprandn(20,20,0.3)

for (x,y,v) in a
  print(x,y,v)
end

最佳答案

findnz 函数返回一个元组,其中包含稀疏矩阵的 x、y 和 value 分量的数组。那是,

findnz(a) gives ([x1, x2, x3, ...], [y1, y2, y3, ...], [v1, v2, v3, ...])

您可以像迭代器一样使用它,如下所示:
for (x,y,v) in zip(findnz(a)...)
  println(x,' ',y,' ',v)
end

关于julia - 如何迭代稀疏数组的非零值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52603561/

相关文章:

Julia 中瓶颈操作的优化

julia - 使用 JULIA RCall 包将 NA 传递给 R

python - 为什么 CSR 格式在选择行方面优于 CSC 格式?

r - R 中非常大的稀疏矩阵的列重新缩放

json - 如何将 JSON 对象写入文件以便稍后在 JuliaLang 中读取?

julia - 如何使用 JuMP 寻求 MIP 的第二最佳解决方案

matlab - 如何在 Fortran mex 文件中实现 A = sparse(I, J, K) (来自三元组的稀疏矩阵)?

python - 如何计算 numpy 数组/矩阵的稀疏度百分比?

c++ - GPU 读取和存储大型矩阵文件

julia - 如何提示用户输入,直到输入在 Julia 中有效