K. *_* K. 5 python numpy scipy
我有一个 3D NumPy 数组,我想将其转换为 Python 中的 3D 稀疏矩阵。我查找了scipy.sparse
模块,只找到了二维稀疏矩阵实现。例如,
输入:
array([[[0],
[0],
[1],
[0],
[1],
[0],
[0]],
[[1],
[0],
[1],
[0],
[0],
[0],
[0]]])
Run Code Online (Sandbox Code Playgroud)
输出:
(0,0,2) 1
(0,0,4) 1
(0,1,0) 1
(0,1,2) 1
Run Code Online (Sandbox Code Playgroud)
怎么办呢?
在 n 维中,您可以通过以下方式找到索引:
ind=np.array(np.where(a!=0)).T
#array([[0, 2, 0],
# [0, 4, 0],
# [1, 0, 0],
# [1, 2, 0]], dtype=int64)
Run Code Online (Sandbox Code Playgroud)
以及相应的值,例如:
ravel_ind=np.apply_along_axis(ravel_multi_index,1,ind,a.shape)
values=np.take(a,ravel_ind)
# array([1, 1, 1, 1])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1851 次 |
最近记录: |