簡體   English   中英

計算數組中特定行元素組合的數量

[英]Count the amount of a specific row elements combinations in an array

我想查找數組中行元素的某種組合發生了多少次。 我嘗試使用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循環的組合只會花費太長時間)

假設您的矩陣包含在變量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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM