awkward-array - 在一个尴尬的数组中获得最小值的所有位置
问题描述
我有一个尴尬的数组,我想从中提取最小值和最大值的所有位置。但是,当我使用以下内容时,我只能提取第一次出现,而不是全部。是否有可能获得所有索引。
>>> 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,在 number = 1 时变为 argmax,对于这种特殊情况。
我试图查看 ak.where,但如果使用 ak.where 可行,我无法得到任何提示。文档说,ak.where 将接受 ak.Array of booleans
>>> a1==1
<Array [[], [], ... False, False, False]] type='10 * var * bool'>
因此我尝试了:
>>> ak.where((a1==1))
我得到的错误是: return to_numpy(array.toRegularArray(), allow_missing=allow_missing) ValueError: in ListOffsetArray64, cannot convert to RegularArray because subarray lengths are not regular
(https://github.com/scikit-hep/awkward-1.0/blob/0.3.1/src/cpu-kernels/operations.cpp#L902)
解决方案
推荐阅读
- c# - 尝试在 Visual Studio Code 中创建 webapi 时出错
- c# - OledbConnection,缺少读取 600 多于服务器上的行
- laravel - 如何在 laravel 中使用与关系获取 3 个表中的数据
- excel - 保存后 - 在新工作簿中创建 2 张不带公式的副本并另存为
- python - 如何使用 Selenium 和 python 在浏览器的第二个窗口上单击 A 按钮
- postgresql - Postgres 自动切换到只读模式 - 错误:无法在只读事务中执行更新
- python - 访问列表中字典中的元素
- sql - 如何使用两个表从数据库中选择数据
- python - 解压一包json文件,对比一系列
- java - Tizen 设备管理器无法打开 (0xc000007b)