首页 > 解决方案 > Numpy方法返回数组中数组出现的索引

问题描述

我有一个表示一组唯一颜色值的​​数组:

[[0.         0.         0.        ]
 [0.         0.         1.        ]
 [0.         1.         1.        ]
 [0.5019608  0.5019608  0.5019608 ]
 [0.64705884 0.16470589 0.16470589]
 [0.9607843  0.9607843  0.8627451 ]
 [1.         0.         0.        ]
 [1.         0.84313726 0.        ]
 [1.         1.         0.        ]
 [1.         1.         1.        ]]

还有另一个代表其中一种颜色的 numpy 数组:

[0.9607843  0.9607843  0.8627451 ]

我需要一个函数来查找颜色数组在颜色集中出现的索引,即该函数应该为上面的数组返回 5。

标签: pythonnumpy

解决方案


假设这是一个相对较短的颜色列表(<1000),最简单的做法可能就是遍历列表并比较子数组的每个元素。

color_list = ...
color_index = -1
target_color = [0.9607843, 0.9607843, 0.8627451]
for i in range(0, len(color_list)):
    cur_color = color_list[i]
    if (cur_color[0] == target_color[0] and cur_color[1] = target_color[1] and cur_color[2] = target_color[2]):
        color_index = i
        break

推荐阅读