可以使用numpy
的{{1}}函数来匹配数组中的元素。以下代码完全匹配数组中的元素extract
。假设我想要
要匹配包含'a.'
的所有元素,我该怎么做?请注意,在这种情况下,将有两个匹配。我还想得到比赛的行数和列号。该方法不必使用'.'
;任何方法都可以。感谢。
extract
答案 0 :(得分:9)
您可以使用string operations:
>>> import numpy as np
>>> x = np.array([['a.','cd'],['ef','g.']])
>>> x[np.char.find(x, '.') > -1]
array(['a.', 'g.'],
dtype='|S2')
编辑:根据评论中的请求...如果您想查找目标条件为何的索引,请使用numpy.where:
>>> np.where(np.char.find(x, '.') > -1)
(array([0, 1]), array([0, 1]))
或
>>> zip(*np.where(np.char.find(x, '.') > -1))
[(0, 0), (1, 1)]
答案 1 :(得分:3)
这个怎么样?
>>> import numpy as np
>>> x = np.array([['a.','cd'],['ef','g.']])
>>> selector = np.array(['.' in s for s in x.flat]).reshape(x.shape)
>>> x[selector]
array(['a.', 'g.'],
dtype='|S2')