我花了几天时间研究索引文档,但没有找到我要找的东西。
考虑一下:
import numpy
fac=numpy.asarray(['a','a','a','b','b','c','c','c'])
f_ind = [x for x in range(len(fac)) if fac[x] == 'c']
它像我想要的那样返回 [5,6,7]
。然而,NumPy 数组似乎应该有一种机制来以更简洁(和高效?)的方式实现同样的事情。 bool 数组可能是解决方案的一部分:
ba = (fac == 'c')
f_vals = fac[ba]
但这只会反省 fac
中等于 'c'
的元素——不是很有帮助。
关于如何使用 NumPy 实现这一点有什么建议吗?还是我应该对我所拥有的感到高兴?
最佳答案
有多种方法可以使用 NumPy 解决此问题,具体取决于您的需要,您可以使用:
>>> import numpy as np
>>> fac = np.asarray(['a','a','a','b','b','c','c','c'])
关于python - 获取与值匹配的数组元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44705047/