如何获得稀疏复矩阵的元素绝对值?一般来说,是否可以使用用户定义的函数将矩阵映射到另一个矩阵?稀疏矩阵的元素绝对值
回答
对我来说只是工作
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. 稀疏矩阵的乘积列元素
- 2. 如何访问稀疏矩阵元素?
- 3. 稀疏矩阵
- 4. 稀疏矩阵对齐
- 5. 稀疏矩阵和矩阵
- 6. 以稀疏矩阵
- 7. 返回scipy稀疏矩阵的对角线元素
- 8. 基于另一个矩阵(矩阵包)的稀疏矩阵的清零元素
- 9. 从稀疏矩阵的行创建一个稀疏对角矩阵
- 10. 在scipy中从稀疏矩阵中移除对角元素
- 11. 元智慧exp()的scipy稀疏矩阵
- 12. 转换SciPy的稀疏矩阵元组
- 13. 98%稀疏矩阵的矩阵完成
- 14. python稀疏矩阵的矩阵功率
- 15. scipy稀疏矩阵的对称化
- 16. R矩阵包:Demean稀疏矩阵
- 17. 反相稀疏矩阵
- 18. R:在稀疏矩阵
- 19. 点产品稀疏矩阵
- 20. 切片稀疏(scipy)矩阵
- 21. 多稀疏矩阵与SQL
- 22. matlab:稀疏矩阵分解
- 23. scipy稀疏矩阵分裂
- 24. 稀疏矩阵内存
- 25. 朱莉娅稀疏矩阵
- 26. 转身稀疏矩阵
- 27. java稀疏矩阵问题
- 28. XGBoost以及稀疏矩阵
- 29. csv稀疏矩阵python
- 30. sklearn tsne用稀疏矩阵
你真的尝试过'np.absolute(spmat)'吗? –
你问了两个问题,一个非常具体,一个非常一般。第二个答案可能取决于你想要的用户定义函数的普遍性。你可以举一些你想做什么的例子吗? –
@WarrenWeckesser Paul Panzer为两者提供了答案。我的用户定义的函数将零映射到零。 –