Python 与单元素元组混淆
在代码下面,我试图找到股票价格的相对最大值和最小值,并用matplotlib绘制一个图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
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!然而,为什么不简单地返回一个列表或数组,而是返回一个包含嵌套列表数组的元素元组呢?!