如何獲得稀疏復矩陣的元素絕對值?一般來說,是否可以使用用戶定義的函數將矩陣映射到另一個矩陣?稀疏矩陣的元素絕對值
回答
對我來說只是工作
import numpy as np
from scipy import sparse
a = sparse.identity(5).tocsr() * 1j
a[2,4] = 1-1j
b = np.absolute(a)
b.A
# array([[ 1. , 0. , 0. , 0. , 0. ],
# [ 0. , 1. , 0. , 0. , 0. ],
# [ 0. , 0. , 1. , 0. , 1.41421356],
# [ 0. , 0. , 0. , 1. , 0. ],
# [ 0. , 0. , 0. , 0. , 1. ]])
# general functions: use the data attribute to access nonzeros
b.data = np.exp(b.data)
b.A
# array([[ 2.71828183, 0. , 0. , 0. , 0. ],
# [ 0. , 2.71828183, 0. , 0. , 0. ],
# [ 0. , 0. , 2.71828183, 0. , 4.11325038],
# [ 0. , 0. , 0. , 2.71828183, 0. ],
# [ 0. , 0. , 0. , 0. , 2.71828183]])
難道我們不是剛發現'稀疏'有一個所有'ufunc'版本保持0值不變嗎?它返回自身的一個副本,但是'ufunc'應用於所有'.data'值。 – hpaulj
@hpaulj是的,所以我們做到了。數據擺弄是爲了不影響0的函數。或者你是否說我應該對所有其他'ufuncs'做更多的說教?你可能有一個點。說實話,我做了一個快速檢查,沒有找到「abs」或「絕對」成員,當然,完全忘了'__abs__'。如果你喜歡,你可以寫一篇文章,涵蓋我省略的東西。 –
http://stackoverflow.com/questions/42408772/element-wise-exp-of-scipy-sparse-matrix - 關於發現稀疏的'expm1'方法的發現。 – hpaulj
在SciPy的稀疏矩陣對象實現的方法__abs__()
以下。這意味着你可以使用Python的內置的abs()
函數。它將發送呼叫到__abs__()
方法。例如,
In [16]: from scipy.sparse import csr_matrix
In [17]: a = csr_matrix([[1+1j, 0, 0, 0], [0, -2, 0, 0], [0, 0, 0, 0], [3-4j, 0, -5j, 0]])
In [18]: a.A
Out[18]:
array([[ 1.+1.j, 0.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, -2.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j],
[ 3.-4.j, 0.+0.j, 0.-5.j, 0.+0.j]])
In [19]: b = abs(a)
In [20]: b.A
Out[20]:
array([[ 1.41421356, 0. , 0. , 0. ],
[ 0. , 2. , 0. , 0. ],
[ 0. , 0. , 0. , 0. ],
[ 5. , 0. , 5. , 0. ]])
- 1. 稀疏三元組稀疏矩陣matlab
- 2. 稀疏矩陣的非零元素
- 3. 稀疏矩陣的乘積列元素
- 4. 如何訪問稀疏矩陣元素?
- 5. 稀疏矩陣
- 6. 稀疏矩陣對齊
- 7. 稀疏矩陣和矩陣
- 8. 以稀疏矩陣
- 9. 50Kx50K稀疏矩陣
- 10. 確定稀疏矩陣的稀疏性(Lil矩陣)
- 11. 以稀疏矩陣中的每個元素的對數
- 12. 返回scipy稀疏矩陣的對角線元素
- 13. 基於另一個矩陣(矩陣包)的稀疏矩陣的清零元素
- 14. 從稀疏矩陣的行創建一個稀疏對角矩陣
- 15. 轉換SciPy的稀疏矩陣元組
- 16. 元智慧exp()的scipy稀疏矩陣
- 17. 在scipy中從稀疏矩陣中移除對角元素
- 18. python稀疏矩陣的矩陣功率
- 19. 98%稀疏矩陣的矩陣完成
- 20. 稀疏矩陣的outlinks的均值
- 21. 稀疏矩陣的劃分
- 22. Numba中的稀疏矩陣
- 23. scipy稀疏矩陣的對稱化
- 24. R矩陣包:Demean稀疏矩陣
- 25. 稀疏矩陣 - 矩陣乘法
- 26. 稀疏矩陣子集密集矩陣
- 27. 組合矩陣和稀疏矩陣
- 28. 連續稀疏矩陣Eigen
- 29. 反相稀疏矩陣
- 30. 稀疏矩陣內存
你真的嘗試過'np.absolute(spmat)'嗎? –
你問了兩個問題,一個非常具體,一個非常一般。第二個答案可能取決於你想要的用戶定義函數的普遍性。你可以舉一些你想做什麼的例子嗎? –
@WarrenWeckesser Paul Panzer爲兩者提供了答案。我的用戶定義的函數將零映射到零。 –