2

编写了一个函数,该函数查找信号的峰值和谷值,并输出到来自 numpy 库的两个 ndarray 对象,称为 mintab 和 maxtab,其索引是时间戳,其值是峰值的值。

我想将此数据绘制为散点图,其中时间戳为 x 轴,峰值为 y,所以我写了这个:

xMax = maxtab[:,0]
yMax = maxtab[:,1]
xMin = mintab[:,0]
yMin = mintab[:,1]

mpl.rc('figure', figsize=(20, 2))                     # configure plot window size
plt.scatter(xMax, yMax, color='g', alpha=1)
plt.scatter(xMin, yMin, color= 'r', alpha = 1)

但我不断收到一条错误消息:IndexError: too many indices并指向该行xMin = mintab[:,0]

我不明白为什么会发生这种情况,我在谷歌上找不到任何关于它的信息。

4

1 回答 1

1

我很惊讶您没有收到不可散列的类型错误:

In [1]: df = pd.DataFrame([[1, 2], [3, 4]])

In [2]: df[:, 0]
# TypeError: unhashable type

如果要以这种方式选择 0 列,则应使用 loc:

In [3]: df.loc[:, 0]
Out[3]:
0    1
1    3
Name: 0, dtype: int64

或者直接选择列:

In [4]: df[0]
Out[4]:
0    1
1    3
Name: 0, dtype: int64

如果要指定第 0 列(无论标签如何),请使用 iloc:

In [5]: df.iloc[:, 0]
Out[5]:
0    1
1    3
Name: 0, dtype: int64
于 2013-09-17T23:14:32.267 回答