我想使用numpy.unique(a,return_count=True)函数where a = numpy.array([5,2,6,2,7,5,6,8,2,9])检查我的数组是否有重复的元素。此函数返回数组的元组,如:(array([2, 5, 6, 7, 8, 9]), array([3, 2, 2, 1, 1, 1], dtype=int64))。现在我想得到这样的结果:2发生3次5发生2次6发生2次
有什么建议吗?
发布于 2019-10-02 14:39:18
In [237]: arr = np.array([5,2,6,2,7,5,6,8,2,9])
In [241]: np.unique(arr,return_counts=True)
Out[241]: (array([2, 5, 6, 7, 8, 9]), array([3, 2, 2, 1, 1, 1]))
In [242]: u,cnt = np.unique(arr,return_counts=True) 在字典中配对:
In [243]: {k:v for k,v in zip(u,cnt)}
Out[243]: {2: 3, 5: 2, 6: 2, 7: 1, 8: 1, 9: 1}或元组列表:
In [244]: list(zip(u,cnt))
Out[244]: [(2, 3), (5, 2), (6, 2), (7, 1), (8, 1), (9, 1)]这是一种转置,类似于数组:
In [246]: np.array((u,cnt)).T
Out[246]:
array([[2, 3],
[5, 2],
[6, 2],
[7, 1],
[8, 1],
[9, 1]])https://stackoverflow.com/questions/58196284
复制相似问题