我有一个2D numpy数组,我正在按列搜索1的组,这相当简单,这实际上是一个1和0的矩阵:
groups = [list(c) for c in mit.consecutive_groups((mit.locate(data[:, 2])))]
这里只看第3列,我想从中得到一个按列对整个数组求和的值字典。我想这样做,我有一个字典,显示一个给定的组长度出现的次数。我很难弄清楚如何在一个列上实现这一点,更不用说为所有列的组合得到相同的值,跳过第一列。你知道吗
我可以使用这个代码片段来获取组开始的索引的键值对,以及它的长度。但是我想得到的是一个组长度的键,它的值是出现的总数。你知道吗
d = {group[0]: len(group) for group in groups}
无论如何,我都不想重写它,不管有没有条件,哪怕是一列都能得到它,更不用说修改我的初始代码行,使我可以在整个矩阵上完成它。你知道吗
以下是输入数据的示例:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
30 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0
40 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
50 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
60 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
70 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0
80 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
90 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
理想情况下,我还需要能够判断它是否在数据集的末尾,因为它会被切断。所以,结合我一直使用的方法,这并不能给出我所需要的,和一些其他类似的方法可能是最好的方法。我简直找不到办法,整个周末都在努力。谢谢。你知道吗
这应该对输入数据执行所需的排序/转换。它还将提供出现在数据末尾的1数组,以供参考。你知道吗
数据应以“列#,行#,长度”的格式显示,其中长度是该列中一行中1的数目。你知道吗
相关问题 更多 >
编程相关推荐