如何获取numpy数组中给定项的列和行索引(y和x)

时间:2016-03-27 03:17:32

标签: python arrays numpy

例如,我有一个3x3 numpy数组,如下所示

a=numpy.array([3,2,1],
              [2,5,6],
              [4,7,8])

如果给定的值是8,那么我应该得到像[3,3]这样的东西 如果给定的值是2,那么我应该得到[0,1]和[1,0],因为数组中有两个'

我知道这很简单,循环,,但我想知道是否有效率" Pythonic"用最少的代码行解决它的方式(或用任何花哨的numpy函数)。感谢

2 个答案:

答案 0 :(得分:3)

您可以使用np.argwhere

import numpy as np

a = np.array([[3, 2, 1],
              [2, 5, 6],
              [4, 7, 8]])

print np.argwhere(a == 8)

>>> [[2 2]]

print np.argwhere(a == 2)

>>> [[0 1]
     [1 0]]

答案 1 :(得分:1)

这将为您提供元组中数组的索引。

np.where(a == 3) # (array([0]), array([0]))
np.where(a == 2) # (array([0, 1]), array([1, 0]))