【发布时间】:2014-12-12 21:31:26
【问题描述】:
我有两个数组(v_1 和v_2),我有一个函数可以获取这些数组,找到它们的值超过阈值的索引,找到数组的前一个值和下一个值,并返回一个新数组(v_1f 和 v_2f)包含先前值未达到阈值的索引。
但是,由于某种原因,return 语句没有给我这些数组。这是为什么?另外,这个函数是否应该产生一个具有我想要的条件的数组?
def findbursts(v_1,v_2):
for index, obj in enumerate(v_1):
if obj == thresh:
v_1f=(obj).nonzero()[0]
# TODO Bounds-checking
previous = v_1f[index - 1]
if previous == None:
v_1ff = v_1f
for index, obj in enumerate(v_2):
if obj == thresh:
v_2f=(obj).nonzero()[0]
# TODO Bounds-checking
previous = v_2f[index - 1]
if previous == None:
v_2ff = v_2f
return [v_1ff, v_2ff]
【问题讨论】:
-
看起来您在第二个
for循环中有一个额外的return语句。你确定应该在那里吗? -
糟糕。不,它不应该是,但它仍然不起作用。我还更新了函数来做我想做的事……我想。
-
也许您可以包含一些示例数据和所需的结果,以便我们验证我们是否了解您的要求
-
你说“......它们的值超过了阈值”,但你正在测试 gor
obj == thresh -
你熟悉
numpy吗?乍一看,numpy似乎更适合这个问题。
标签: python arrays loops iteration enumerate