我想查找某个行元素组合在数组中出现的次数。我试图使用numpy.where命令,但我无法让它工作。举个例子:
array([['a', '2', 'b'],
['c', '4', 'a'],
['b', '2', 'c'],
['a', '5', 'b'],
['b', '7', 'a'],
['a', '3', 'b']],
dtype='|S1')
我想现在第一行中'a'和第三行中'b'的组合出现了多少时间(注意'a'和'b'的组合与组合'b'不同和'a')。不要介意第二列中的数字,这些是我稍后在代码中使用的其他信息。 在上面给出的例子中,操作的结果应该是3。我正在尝试寻找一种快速的方法,因为这个定义将在我的代码中多次使用(因此多个for循环的组合将花费太长时间)
答案 0 :(得分:0)
如果您的矩阵包含在变量arr
中,您可以执行以下操作:
import numpy as np
arr = arr.astype('U')
arr[np.logical_and(arr[:,0]=='a', arr[:,2]=='b')]
#array([['a', '2', 'b'],
# ['a', '5', 'b'],
# ['a', '3', 'b']],
# dtype='<U1')