IndexError:用作索引的数组必须为Integers(或boolean)类型

时间:2019-02-09 19:07:07

标签: python python-3.x numpy numpy-ndarray

背景

我有4个Numpy 1 D数组,长度为107952899。 我将上述1d组合为多D数组,并按(107952899, 4)的顺序转置它们并将其存储为data1。 我为我的数组设置列名。 (e.g : data1[:, 0] = Index)

(Like above, 0th col - Index, 1st- Time, 2nd- Speed, 3rd col - Brake)

我通过以下命令遵循过滤过程,例如速度> 20和制动> 30。

data1 = data1[(Speed > 20) & (Brake > 30)]

现在data1 shape changed to (35778, 4)

要求

我想要“刹车”列中的前N个值以及相应的“索引”列。

(因此,我想到了使用argsort对列进行排序)

我尝试过的

data1 = data1 [data1 [:, Brake].argsort()[::-1][: N]]

问题面对

执行此操作时,我收到了IndexError : arrays used as indices must be Integers (or boolean) type

发生错误后我做了什么:

我的dtype of data1 is float。我虽然必须将整个数组更改为int。

但“制动”列包含诸如[30.4,30.8,30.9 .....12.053,60.50]之类的元素 我不应该更改为int,因为我想找到最大元素。

即使我尝试更改dtype to int using astype,但问题仍然存在

请求

如何纠正上述错误,使我的要求获得完全同意

0 个答案:

没有答案