我正在对数组元素的子集使用函数np.argwhere(),但我需要它返回满足条件的元素的索引(相对于原始数组,而不是片).有没有办法做到这一点?

示例代码如下:

A = np.array([1,2,3,4,5,6,7,8,9])
i = [0, 3, 6, 7, 8]
np.argwhere(A[i] < 8)

Output: array([[0], [1], [2]])

我想要的输出是

array([[0], [3], [6]])

推荐答案

np.argwhere给你的指数是in the slice.我们已经知道如何将片中的索引转换为数组中的索引:片中的索引x对应于数组中的索引i[x],因此我们只需将结果为np.argwhere的索引转换为i

A = np.array([1,2,3,4,5,6,7,8,9])
i = np.array([0, 3, 6, 7, 8])

slice_lt8 = np.argwhere(A[i] < 8)
arr_lt8 = i[slice_lt8]

arr_lt8现在是所需的值:

array([[0],
       [3],
       [6]])

Python相关问答推荐

使用unmanagedexports从Python调用的c#DLC

在有限数量的唯一字母的长字符串中,找到包含重复不超过k次的所有唯一字母的最长子字符串

有没有办法清除气流中的僵尸

使用itertools出现第n个子串

为什么使用SciPy中的Distance. cos函数比直接执行其Python代码更快?

根据多列和一些条件创建新列

如何在矩阵上并行化简单循环?

在Windows上启动新Python项目的正确步骤顺序

DuckDB将蜂巢分区插入拼花文件

剧作家Python:expect(locator).to_be_visible()vs locator.wait_for()

通过仅导入pandas来在for循环中进行多情节

理解Python的二分库:澄清bisect_left的使用

Python多处理:当我在一个巨大的pandas数据框架上启动许多进程时,程序就会陷入困境

Python上的Instagram API:缺少client_id参数"

运行总计基于多列pandas的分组和总和

如何使用根据其他值相似的列从列表中获取的中间值填充空NaN数据

如何在Python数据框架中加速序列的符号化

Pandas—在数据透视表中占总数的百分比

在Python 3中,如何让客户端打开一个套接字到服务器,发送一行JSON编码的数据,读回一行JSON编码的数据,然后继续?

Flask Jinja2如果语句总是计算为false&