我花了几天的时间研究索引文档,但没有找到我需要的内容。
考虑以下情况:
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数组应该有一种更简洁(和有效?)的方法来实现相同的效果。布尔数组可能是解决方案的一部分:
ba = (fac == 'c')
f_vals = fac[ba]
但这只是将等于'c'
的fac
元素重复 -- 没有什么帮助。
有没有使用NumPy实现这个功能的建议?或者我应该对目前的结果感到满意呢?
fac=='c'
的True/False值感到满意,请使用np.nonzero
(或np.where
)获取True值的索引。 - hpaulj