python - 如何在 numpy 数组中找到元组的索引?

标签 python numpy

我有一个 numpy 数组:

groups=np.array([('Species1',), ('Species2', 'Species3')], dtype=object)

当我询问 np.where(groups == ('Species2', 'Species3')) 甚至 np.where(groups == groups[1]) 我得到一个空回复:(array([], dtype=int64),)

为什么会这样,我怎样才能得到这样一个元素的索引?

最佳答案

这里的问题可能是 array.__contains__() 的实现方式。 参见 here .基本上问题是

print(('Species2', 'Species3') in groups)

打印错误。 如果您仍然想使用 numpy.where 函数,而不是像另一个答案所建议的那样使用 for 循环,那么最好以某种方式构造一个合适的真值掩码。例如

x = np.array(list(map(lambda x: x== ('Species2', 'Species3'), groups)))
print(np.where(x))

给出正确的结果。不过,可能还有更优雅的方法。

关于python - 如何在 numpy 数组中找到元组的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56788435/

相关文章:

Python myro 模块导入错误

python - pandas 与索引的元素相乘

python - 汉明窗,python 2.7

python - 从三个 1D numpy 数组填充 2D numpy 数组

matlab - Numpy 相当于 MATLAB 的 hist

python - Numpy 索引异常 : How to subselect from multidimensional array and keep all axes

Python Pandas : Bar plot X axis issue

python - (A, B) 和 (C,) 之间的 Minkowski 距离

python - 根据索引列合并两个数据框

python - 可逆字典到数组映射