在我将 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 小一个元素。
输出的形状与 a 相同,除了沿轴,其中
维数小了n。
numpy.diff https://docs.scipy.org/doc/numpy-1.10.4/reference/generated/numpy.diff.html
我正在使用 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))]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)