python - 在切片上使用 np.argwhere 时如何获取原始数组中的索引?

标签 python arrays numpy

我在数组元素的子集上使用函数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]])

我想要的输出是

数组([[0], [3], [6]])

最佳答案

np.argwhere 为您提供切片中的索引。我们已经知道如何将切片中的索引转换为数组中的索引:切片中的索引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 - 在切片上使用 np.argwhere 时如何获取原始数组中的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76237096/

相关文章:

python - 当二维数组作为变量时计算函数

ruby - << 在 Ruby 中是什么意思?

C语言编程

python - 如何在 django 模型中存储函数

python - 有没有办法通过ffmpeg中的启用功能在最后3秒在视频中添加drawtext过滤器

python - 管道弹出标准错误和标准输出

python - 将 hdf5 文件加载到 python xarrays

python - 当只有年份信息可用时,numpy 将字符串转换为日期时间

python - 如何获取 Pandas DataFrame 中的值索引?

python - 在一组固定的元素上生成特定秩的 "random"矩阵