python在数组切片中找到高值

时间:2013-11-08 20:51:23

标签: python numpy

以下是给我一些问题的代码片段。我想要做的是发现每天出现356天的高点。要做到这一点,我尝试的代码类似于下面的代码,但在“for i”行上获得异常:'builtin_function_or_method'对象没有属性' getitem '

Quote = namedtuple("Quote", "Date Close Volume")

quotes = GetData() # arrray

    newHighs = []
    for i,q in range[365, len(quotes)]:  #<--Exception
        max = max(xrange[i-365, i].Close)  #<--i know this won't work, will fix when i get here
        if (q.Close > max):
            newHighs.append(i,q)

任何有关修复此问题的帮助将不胜感激。另外,有效实现这一点的任何提示(因为引号数组目前有17K元素)也不错。

2 个答案:

答案 0 :(得分:3)

“范围”是一个功能。这意味着您使用圆括号,而不是方括号。这与下面一行中的“xrange”相同。我理解你为什么要使用方括号,但“范围”的作用是使用这些参数创建列表。所以它与你想要列表中的元素m到n的时间不一样。

答案 1 :(得分:3)

range是一个返回生成器(或python2中的列表)的函数。因此,它必须被调用为函数range(365, len(quotes)),它将所有数字从365返回到len(引号)。

方括号表示索引,例如访问列表中的项目。由于range是函数而不是列表,因此当您尝试访问它时会抛出异常。