Python 与单元素元组混淆

Python 与单元素元组混淆,python,Python,在代码下面,我试图找到股票价格的相对最大值和最小值,并用matplotlib绘制一个图 stockewma=pd.ewma(stock,span=3) stocka=np.array(stockewma.values) mx=argrelextrema(stocka,np.greater) mn=argrelextrema(stocka,np.less) mxx=[stock.index[i] for i in mx] mxy=[stock.ix[i] for i in mx] mnx=[sto

在代码下面,我试图找到股票价格的相对最大值和最小值,并用matplotlib绘制一个图

stockewma=pd.ewma(stock,span=3)
stocka=np.array(stockewma.values)
mx=argrelextrema(stocka,np.greater)
mn=argrelextrema(stocka,np.less)
mxx=[stock.index[i] for i in mx]
mxy=[stock.ix[i] for i in mx]
mnx=[stock.index[i] for i in mn]
mny=[stock.ix[i] for i in mn]
代码工作正常,但后来我发现argrelextrema实际上返回一个列表的单个np.array的元组

为什么要如此笨拙地包装数据

为此,我必须使用mx[0]#访问索引值,因为它是一个单元素元组

我不明白为什么下面的代码可以工作,用嵌套单个列表的数组来索引

mxx=[stock.index[i] for i in mx]
mxy=[stock.ix[i] for i in mx]
mnx=[stock.index[i] for i in mn]
mny=[stock.ix[i] for i in mn]

argrelextrema
返回单个元素元组,以便以下
mxx
mxy
语句工作。这些是

声明

mxx=[stock.index[i] for i in mx]
返回可由以下等效代码创建的列表

mxx = []
for i in mx:
    value = stock.index[i]
    mxx.append(value)

tks!然而,为什么不简单地返回一个列表或数组,而是返回一个包含嵌套列表数组的元素元组呢?!