【发布时间】:2015-07-26 06:57:35
【问题描述】:
我正在使用 NumPy 在图表上查找交叉点,但 isClose 每个交叉点返回多个值
所以,我将尝试找出他们的平均值。但首先,我想隔离相似的值。这也是我觉得很有用的技能。
我有一个名为idx 的交叉点的 x 值列表,看起来像这样
[-8.67735471 -8.63727455 -8.59719439 -5.5511022 -5.51102204 -5.47094188
-5.43086172 -2.4248497 -2.38476954 -2.34468938 -2.30460922 0.74148297
0.78156313 0.82164329 3.86773547 3.90781563 3.94789579 3.98797595
7.03406814 7.0741483 7.11422846]
我想把它分成由相似数字组成的列表。
这是我目前所拥有的:
n = 0
for i in range(len(idx)):
try:
if (idx[n]-idx[n-1])<0.5:
sdx.append(idx[n-1])
else:
print(sdx)
sdx = []
except:
sdx.append(idx[n-1])
n = n+1
它在大多数情况下都有效,但它忘记了一些数字:
[-8.6773547094188377, -8.6372745490981959]
[-5.5511022044088181, -5.5110220440881763, -5.4709418837675354]
[-2.4248496993987976, -2.3847695390781567, -2.3446893787575149]
[0.7414829659318638, 0.78156312625250379]
[3.8677354709418825, 3.9078156312625243, 3.9478957915831661]
可能有一种更有效的方法来做到这一点,有人知道吗?
【问题讨论】:
-
这个的最终用途是什么?你在做直方图吗?是什么决定了分组——仅仅是它们之间的距离在 0.5 以内吗?您希望在 [-0.5, 0.0, 0.5, 1.0, 1.5] 上发生什么?
-
请描述这应该做什么。从非功能代码中猜测它不是一种选择。您的 idx 缺少的所有逗号在哪里?
-
这是一个 numpy 数组吗?
-
你为什么要循环使用
for i in range(len(idx)):,然后使用n(你必须手动增加)来索引列表? -
我对问题进行了编辑以回答其中的一些问题,抱歉。
idx也是一个 numpy 数组,这可能就是它没有逗号的原因。
标签: python python-3.x numpy split