numpy数组中的切片错误

时间:2017-12-06 08:44:55

标签: python-3.x numpy matplotlib signal-processing

我正在尝试运行以下代码

fs = 1000
data = np.loadtxt("trainingdataset.txt", delimiter=",")
data1 = data[:,2]
data2 = data1.astype(int)
X,Y = data2['521']

但它让我得到以下错误

Traceback (most recent call last):
  File "C:\Users\hadeer.elziaat\Desktop\testspec.py", line 58, in <module>
    X,Y = data2['521']
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices

我的数据集

1,4,6,10
2,100,125,10
3,100,7216,254
4,100,527,263
5,100,954,13
6,100,954,23

2 个答案:

答案 0 :(得分:0)

您使用字符串'521'而不是数字521进行索引。请改为X,Y = data2[521]

如果只给你字符串,你可以先将它强制转换为int:X,Y = data2[int('521')],但这可能会导致一些错误和/或意外行为。

下一个问题,您需要两个变量,一个用于X,另一个用于Y,但data2[521]选项仅为您提供单个变量(第3列中的数字) ,第522行)。

答案 1 :(得分:0)

您说您想要第3列中的所有数据。

我假设您还想要某种x轴,因为您正在尝试X, Y = ...。如何使用第一列呢?然后你的代码将是:

import numpy as np

data = np.loadtxt("trainingdataset.txt", delimiter=',', dtype='int')
x = data[:, 0]
y = data[:, 2]

您的问题仍然不清楚,为什么您尝试使用data索引521 - 这失败了,因为您无法在纯数组上使用字符串作为索引。