我有一个角度数组,我想将它们分组为数组,它们之间的最大差异为 2 度。
例如:输入:
angles = np.array([[1],[2],[3],[4],[4],[5],[10]])
Run Code Online (Sandbox Code Playgroud)
输出
('group', 1)
[[1]
[2]
[3]]
('group', 2)
[[4]
[4]
[5]]
('group', 3)
[[10]]
Run Code Online (Sandbox Code Playgroud)
numpy.diff获取下一个元素与当前元素的差异,我需要下一个元素与组中第一个元素的差异
itertools.groupby对不在可定义范围内的元素进行分组
numpy.digitize按预定义范围对元素进行分组,而不是按数组元素指定的范围。(也许我可以通过获取角度的唯一值、按差异对它们进行分组并将其用作预定义范围来使用它?)
。
我的方法有效,但似乎效率极低且非Pythonic:(我使用expand_dims和vstack,因为我正在使用一维数组(不仅仅是角度),但我已经减少了它们以简化这个问题)
angles = np.array([[1],[2],[3],[4],[4],[5],[10]])
groupedangles = []
idx1 = 0
diffAngleMax = 2
while(idx1 < len(angles)):
angleA = angles[idx1]
group = np.expand_dims(angleA, axis=0)
for idx2 in xrange(idx1+1,len(angles)):
angleB = angles[idx2]
diffAngle = angleB - angleA
if abs(diffAngle) <= diffAngleMax:
group = np.vstack((group,angleB))
else:
idx1 = idx2
groupedangles.append(group)
break …Run Code Online (Sandbox Code Playgroud) 注意:我自己提问和回答,因为我花了 3 天尝试不同的方法来找到解决方案,希望这对某人有帮助。这个问题以前曾被问过,但它们已经过时了,而且答案不清楚或不令人满意。
在使用具有浮动的元素打印时尝试添加分页符(例如:使用引导网格)不起作用。分页符被忽略。
<div style="float:right;">floating div</div>
<div class="col-xs-12">
<div class="row">
<div class="col-xs-12 break-after">
Add page break after this element when printing
</div>
<div class="col-xs-12">
This should be printed on next page
</div>
</div>
</div>
<style type="text/css">
.break-after {
page-break-after: always;
}
</style>
Run Code Online (Sandbox Code Playgroud)