如何在python中获取数组中一批元素的索引?

时间:2020-08-11 06:37:10

标签: python multidimensional-array tuples

是否可以在截取矩阵时获取截取区域的元素所在区域的索引? 以下示例:

  array = [
    [[], [], [], [], []],
    [[], [], [], [], []],
    [[], [], [], [], []],
    [[], [], [], [], []],
    [[], [], [], [], []],
    [[], [], [], [], []],
  ]
  arrayIndex = getIndex(array[:2, :2])

因此,getIndex函数应返回array[:2, :2]每个元素索引,结果如下所示

  arrayIndex = [
    [[0, 0], [0, 1]],
    [[1, 0], [1, 1]]
  ]

1 个答案:

答案 0 :(得分:0)

我想我可能会有一个想法(如果我正确理解您的话)。 如果要知道子元素中所有条目的主元素索引,则必须将array, array[:2, :2]都赋予getIndex函数,并让其找到相应的索引。

以下是您想要的吗?

import numpy as np

def getIndex(a, a_sub):
    indices = []
    for row in a_sub:
        for entry in row:
            index = np.array(np.where( entry == a))[:,0]
            indices.append(list(index))

    return (indices)

array = np.random.random(size=(5,5))


arrayIndex = getIndex(array, array[:2, :2])
print(arrayIndex)

arrayIndex = getIndex(array, array[3:4, 1:2])
print(arrayIndex)

屈服

[[0, 0], [0, 1], [1, 0], [1, 1]]

[[3, 1]]

免责声明 一旦您的矩阵元素不再唯一,此解决方案很可能会引起问题。

相关问题