繁体   English   中英

IndexError:boolean index与维度0的索引数组不匹配

[英]IndexError: boolean index did not match indexed array along dimension 0

我的代码工作正常,直到我将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是一个小于data_array的元素。

输出的形状与尺寸小于n的轴相同。

numpy.diff

我使用的是Numpy 1.11,而不是IndexError我得到了一个VisibleDeprecationWarning 所以我想不再容忍使用不正确的尺寸。

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

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))]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM