2D阵列中元素的顺序测试?

时间:2014-07-15 11:55:38

标签: python arrays list testing iteration

道歉,如果这是一个简单的问题 - 我是Python和numpy的新手 - 但我非常感谢你的帮助。

我有一个以行和列排列的2D numpy数据,第一列代表时间,后续列显示每个时间点不同参数的值。

我想从上到下读取给定的数据列(即时间= 0到时间=行数),并按顺序测试该列中的每个元素以找到第一个实例(并且只有第一个实例) instance)该列中的数据值满足给定标准。 这与通过使用numpy arange()函数测试和迭代测试“一次性”列中的“全部”或“任何”元素不同。

作为伪代码的最小工作示例,如果我的数组是:

myarray = 
[[1, 4 ....]
 [2, 3 ....]
 [3, 8 ....]
 [4, 9 ....]....]

...第一列是时间,第二列包含每个时间点收集的数据值。

我希望能够从上到下按顺序迭代行并测试:

threshold = 5
for row = 0 to number of rows:
    if data in [column 1, row] > threshold:
        print "The first time point at which the data exceed the threshold is at time = 3 "
        break

这种方式最具Pythonic(即有效且可理解)的方式是什么?

在迭代之前是否有必要将数组转换为列表?测试,还是可以直接顺序迭代和测试数组?

希望这有点道理......

非常感谢期待

戴夫

1 个答案:

答案 0 :(得分:1)

试试这段代码:

>>> myarray = [[1, 4 ],  [2, 3 ],  [3, 8 ], [4, 9 ]]
>>> stop = False
>>> for row in myarray:
        for d in row:
            if d > 5:
                print("Row: ", row, "Data: ", d)
                stop = True
                break
        if stop:
        break

('Row: ', [3, 8], 'Data: ', 8)
>>>