python - 在 Python 中查找矩阵中某个元素的所有出现位置

标签 python matrix

我有一个列表列表,我想找到所有事件的坐标。我设法做到了,但我想知道是否有更好的方法使用 numpy where 例如。

这就是我所做的:

my_list = [[1,2,3,1, 3], [1,3,2]]

target_value = 3
locations = []
for k in range(len(my_list)):
    indices = [i for i, x in enumerate(my_list[k]) if x == target_value]
    locations.append((k, indices))
locations2 = []
for row in locations:
    for i in row[1]:
        locations2.append((row[0], i))
print locations2 # prints [(0, 2), (0, 4), (1, 1)]

最佳答案

虽然你可以让它在 numpy 中工作,但 numpy 对参差不齐的数组并不那么满意。我认为纯Python理解版本看起来还不错:

>>> my_list = [[1,2,3,1, 3], [1,3,2]]
>>> [(i,j) for i,x in enumerate(my_list) for j,y in enumerate(x) if y == 3]
[(0, 2), (0, 4), (1, 1)]

关于python - 在 Python 中查找矩阵中某个元素的所有出现位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15642837/

相关文章:

python - 从 Python 列表中获取 n 项组的惯用方法?

c++ - 以类实例为右侧的运算符重载

c - 在C中为大程序分配内存

matlab - 当一维未知时在循环之前定义一个矩阵

python - 如何使用正则表达式从字符串中删除除 '#' 之外的所有非字母数字字符?

python - 为什么人们说 RPython 是一种令人不愉快的编程语言

algorithm - 从不完整的联赛表中计算分数

matrix - 行优先顺序对于矩阵向量乘法是否更有效?

python - 已安装“opencv-python”但仍显示 'ModuleNotFoundError: No module named cv2 '

Python Tkinter 通过函数更新文本框内容