Python 索引器错误:布尔索引与维度0上的索引数组不匹配

Python 索引器错误:布尔索引与维度0上的索引数组不匹配,python,python-2.7,numpy,Python,Python 2.7,Numpy,我的代码运行良好,直到我将Numpy更新为1.13.1。现在我得到以下错误 IndexError: boolean index did not match indexed array along dimension 0; dimension is 5 but corresponding boolean dimension is 4 。。。在这一行抛出: m = arr[np.diff(np.cumsum(arr) >= sum(arr) * i)] 我似乎不能把我的头围绕着它。有什么建

我的代码运行良好,直到我将Numpy更新为1.13.1。现在我得到以下错误

IndexError: boolean index did not match indexed array along dimension 0; dimension is 5 but corresponding boolean dimension is 4
。。。在这一行抛出:

m = arr[np.diff(np.cumsum(arr) >= sum(arr) * i)]
我似乎不能把我的头围绕着它。有什么建议吗

以下是我的示例代码:

a = [1,2,3,4,5]
l = [0.85,0.90]
s = sorted(a, reverse = False)
arr = np.array(s)
for i in l:
    m = arr[np.diff(np.cumsum(arr) >= sum(arr) * i)]
np.diff是比数据数组小一个元素

输出的形状与a相同,除了沿 尺寸小于n

我正在使用Numpy 1.11,而不是索引器,我得到了一个可见的DeprecationWarning。因此,我猜不再允许使用不正确的尺寸

您需要定义所需的行为,例如从第二个元素开始,或删除最后一个元素:

arr = np.array([1,2,3,4,5])

arr2 = arr[:-1]
m = arr2[np.diff(np.cumsum(arr) >= sum(arr))]

arr3 = arr[1:]
m = arr3[np.diff(np.cumsum(arr) >= sum(arr))]

添加复制该问题的示例案例?类型与输入相同:谢谢。相反,我将“0”附加到原始数组,以保留所有数据点。