gpt4 book ai didi

python - 如何在Python中将3D numpy数组转换为3D稀疏矩阵?

转载 作者:行者123 更新时间:2023-12-02 05:13:40 25 4
gpt4 key购买 nike

我有一个 3D NumPy 数组,我想将其转换为 Python 中的 3D 稀疏矩阵。我查找了 scipy.sparse 模块,只找到了 2D 稀疏矩阵实现。例如,

输入:

array([[[0],
[0],
[1],
[0],
[1],
[0],
[0]],
[[1],
[0],
[1],
[0],
[0],
[0],
[0]]])

输出:

(0,0,2) 1
(0,0,4) 1
(0,1,0) 1
(0,1,2) 1

如何做到这一点?

最佳答案

在 n 维中,您可以通过以下方式找到索引:

ind=np.array(np.where(a!=0)).T
#array([[0, 2, 0],
# [0, 4, 0],
# [1, 0, 0],
# [1, 2, 0]], dtype=int64)

以及相应的值,例如:

ravel_ind=np.apply_along_axis(ravel_multi_index,1,ind,a.shape)
values=np.take(a,ravel_ind)
# array([1, 1, 1, 1])

关于python - 如何在Python中将3D numpy数组转换为3D稀疏矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52196509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com