在特徵中編輯稀疏矩陣對角線的最快方法是什麼?我已經使用三元組填充它,但我偶爾需要更改所有對角線值(它們已被設置爲非零)。稀疏矩陣的特徵 - 對角線更新
回答
如果接受,你可以簡單地使用他們的指標像
sp_mat(i, i)
由於每個訪問包括二進制搜索,其性能可能無法滿足。在這種情況下,您仍然可以通過一些限制獲得更好的性能。
- 您不會更改矩陣的基礎佈局,例如,添加/刪除nnzs,壓縮;
- 您將重複訪問對角線。
有了這些限制,您可以存儲對角線組件的指針,以便您可以稍後在O(1)時間訪問數據。你可以得到的指針與
&sp_mat(i, i)
要完成kangshiyin的回答,您還可以編輯通過密集的矢量表達式對角線,例如到1添加到每個對角線元素:
sp_mat.diagonal().array() += 1;
警告:這隻有在對角元素已經存在的情況下才有效,原始問題就是這種情況。
對我來說,元素已經存在。你會期望表達式比存儲指針和直接改變更快/更慢嗎? – cgreen
nope這種方法每次都會涉及二進制搜索,但在某些情況下寫起來更容易。 – ggael
是否.diagonal()在v3.2.9中可用? – kangshiyin
- 1. 稀疏矩陣和本徵
- 2. 不正確的特徵值SciPy稀疏linalg.eigs,非對角線M矩陣的eigsh
- 3. 如何疊加幾個稀疏矩陣(特徵矩陣)?
- 4. 如何用密集矩陣乘以稀疏矩陣與特徵?
- 5. 從稀疏矩陣的行創建一個稀疏對角矩陣
- 6. 徵:使用稀疏矩陣的selfAdjointView
- 7. 大型稀疏矩陣的全SVD(只需要特徵值)
- 8. 使用特徵的高效塊稀疏矩陣乘法
- 9. 與本徵稀疏矩陣乘法
- 10. 本徵稀疏矩陣儲備NNZ
- 11. 徵:如何初始化一個稀疏矩陣與一些子稀疏矩陣
- 12. 稀疏矩陣
- 13. 使用特徵3稀疏特徵值/稀疏
- 14. 稀疏矩陣和矩陣
- 15. 稀疏矩陣的高效內存小型特徵值算法
- 16. 稀疏矩陣對齊
- 17. JAVA中的大型稀疏矩陣特徵分解
- 18. 稀疏矩陣的特徵向量的快速計算
- 19. 50Kx50K稀疏矩陣
- 20. 關於稀疏(csr)特徵矩陣的分層KFold
- 21. 返回scipy稀疏矩陣的對角線元素
- 22. matlab:提取大型稀疏矩陣的塊對角線
- 23. 特徵3.3中的稀疏矩陣非零計數
- 24. 稀疏矩陣中的特徵縮放和均值歸一化
- 25. 計算Python中稀疏矩陣的廣義特徵值
- 26. 本徵稀疏矩陣乘法似乎計算全矩陣
- 27. 以稀疏矩陣
- 28. 如何在SciPy中創建對角線稀疏矩陣
- 29. Tensorflow:從其對角線構建稀疏矩陣
- 30. 稀疏三元組稀疏矩陣matlab
對,那些正是我的條件。知道如何訪問這些職位的指針? – cgreen
@cgreen use'&' – kangshiyin