【问题标题】:frequency of unique values for 2d numpy array2d numpy 数组的唯一值的频率
【发布时间】:2021-06-21 09:43:38
【问题描述】:

我有一个以下格式的二维 numpy 数组:

现在如何打印这个 2d numpy 数组中唯一元素的频率,以便它返回 count([1. 0.]) = 1 and count([0. 1.]) = 1?我知道如何使用循环来做到这一点,但是有没有更好的 Pythonic 方式来做到这一点。

【问题讨论】:

    标签: python arrays numpy count unique


    【解决方案1】:

    您可以使用numpy.unique(),对于axis=0,并传递return_counts=True,它将返回一个具有唯一值的元组,以及这些值的计数。

    np.unique(arr, return_counts=True, axis=0)
    

    输出:

    (array([[0, 1],
           [1, 0]]), array([1, 1], dtype=int64))
    

    【讨论】:

      【解决方案2】:

      你可以使用collections.Counter,它会给你一个字典,其中子列表作为键,出现次数作为值

      y = np.array([[1., 0.], [0., 1.], [0., 1.]])
      counter = collections.Counter(map(tuple, y))
      print(counter[0., 1.]) # 2
      

      【讨论】:

        猜你喜欢
        • 2022-12-04
        • 2012-05-31
        • 2019-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-23
        相关资源
        最近更新 更多