gpt4 book ai didi

python - 如何降低二维numpy数组的稀疏程度?

转载 作者:行者123 更新时间:2023-11-30 22:48:20 30 4
gpt4 key购买 nike

我有一个非常稀疏的数组,如下所示:

arr = array([[0, 1, 0, 0, 0, 2],
[0, 0, 2, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 7, 0, 0, 4, 0]])

由于索引 0 和 3 的列全为零,我想删除它们并得到如下结果:

array([[1, 0, 0, 2],
[0, 2, 0, 0],
[0, 0, 0, 0],
[7, 0, 4, 0]])

我想我可以检查每一列

for i in len(arr):
if arr[:, i] != 0:
newarr = np.column_stack((newarr, arr[:, i]))

但是我遇到了一个错误,它教我使用 a.all()..

最佳答案

使用简单的索引,通过选择至少有一个非零项的列(在第一个轴上使用any()):

In [9]: arr[:, arr.any(0)]
Out[9]:
array([[1, 0, 0, 2],
[0, 2, 0, 0],
[0, 0, 0, 0],
[7, 0, 4, 0]])

关于python - 如何降低二维numpy数组的稀疏程度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40200082/

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