我有一个awkward1数组,我想从中提取最小值和最大值的所有位置。然而,当我使用以下内容时,我只能提取第一次出现的内容,而不是全部。有可能得到所有的指数吗。
>>> a1=ak.Array([[], [], [1, 1, 0, 1, 1, 0, 0], [], [], [], [], [0, 0], [], [-1, -1, -1, -1]])
>>> ak.to_list(ak.argmin(a1,axis=-1, keepdims=True))
[[None], [None], [2], [None], [None], [None], [None], [0], [None], [0]]
我需要的输出是:
[[None], [None], [2,5,6], [None], [None], [None], [None], [0,1], [None], [0,1,2,3]]
在类似的行中,除了argmin或argmax之外,还可以执行类似argN(array,number,axis=-1,keepdims=True)的操作,
在这种特殊情况下,当number=0时,它可以变为argmin,当numbers=1时,它变为argmax。
我试图查看ak.where,但我无法得到任何提示,如果使用ak.where可行。文件显示,ak.where将接受ak。布尔值数组
>>> a1==1
<Array [[], [], ... False, False, False]] type='10 * var * bool'>
因此,我尝试了:
>>> ak.where((a1==1))
我得到的错误是:
返回to_numpy(array.toRegularArray(),allow_mising=allow_mision)
ValueError:在ListOffsetArray64中,无法转换为RegularArray,因为子数组长度不规则
(
https://github.com/scikit-hep/awkward-1.0/blob/0.3.1/src/cpu-kernels/operations.cpp#L902
)