猿问

如何计算矩阵列表中矩阵的出现次数?

我有一个矩阵列表,例如一个 numpy 数组列表:

list = [np.array([[0,1],[1,1]]),
        np.array([[1,0],[0,0]]),
        np.array([[0,1],[1,1]])]

我想计算每个矩阵的出现次数。因此,理想的输出类似于:

np.array([[0,1],[1,1]]): 2
np.array([[1,0],[0,0]]): 1

我可以想象使用 numpy 或 pandas 可以实现这一点。由于我需要使用矩阵进行算术运算,因此我正在寻找一种避免展平矩阵的解决方案。我知道 np.unique 能够计算列表中平面数组的出现次数。


呼如林
浏览 99回答 1
1回答

Qyouu

你可以做:pd.Series(my_list).astype(str).value_counts()[[0 1]\n [1 1]]    2[[1 0]\n [0 0]]    1dtype: int64或者:from collections import defaultdictd = defaultdict(int)for arr in my_list:    d[str(arr)] += 1    d = dict(d)print(d){'[[0 1]\n [1 1]]': 2, '[[1 0]\n [0 0]]': 1}
随时随地看视频慕课网APP

相关分类

Python
我要回答