【问题标题】:How to check if y outputs are unique for the duplicates in x inputs?如何检查 y 输出对于 x 输入中的重复项是否唯一?
【发布时间】:2021-12-23 20:05:35
【问题描述】:

我有两个 numpy 数组。第一个(X 输入)的形状是(337, 3, 30),但第二个(y 输出)是(337, 8)。第一个有很多重复。如何找到这些重复项的唯一输出数量?我的意思是检查,例如,如果在 10 个重复项中,第二个数组中有 10 个相同的值(1 个唯一的)或不同的值。

例如:X 矩阵有重复,我知道这是由于 Counter 功能。每个 X 案例对应于 Y 单元格。假设 X 矩阵的前两行相同,那么我想检查矩阵 Y 中的前两行是否相同或不同。如果它们不同 - 有多少场景。我想做这样的分析。

编辑:现在我创建了一个列表。每个列表元素都有一个元组,其中第一个位置是 X 元素,第二个对应的 y 元素。也许这是解决问题的更好方法?

list_of_tups[0]

给出这样的输出:

(array([[-0.63434589, -0.29900576,  1.58925953,  1.58925953, -1.25893308,
          0.76126064, -0.87056499,  0.31736156, -3.86900902, -1.        ,
         -0.23059131, -0.78751513,  0.510954  , -1.        , -0.30160512,
          1.        ,  5.8423382 ,  0.02629687,  0.02696755,  1.65819659,
          4.21574931, -1.        ,  0.        ,  1.        ,  0.        ,
          0.        ,  0.        ,  0.        ,  0.        ,  0.        ],
        [-1.        , -1.        , -1.        , -1.        , -1.        ,
         -1.        , -1.        , -1.        , -1.        , -1.        ,
         -1.        , -1.        , -1.        , -1.        , -1.        ,
         -1.        , -1.        , -1.        , -1.        , -1.        ,
         -1.        , -1.        , -1.        , -1.        , -1.        ,
         -1.        , -1.        , -1.        , -1.        , -1.        ],
        [-1.        , -1.        , -1.        , -1.        , -1.        ,
         -1.        , -1.        , -1.        , -1.        , -1.        ,
         -1.        , -1.        , -1.        , -1.        , -1.        ,
         -1.        , -1.        , -1.        , -1.        , -1.        ,
         -1.        , -1.        , -1.        , -1.        , -1.        ,
         -1.        , -1.        , -1.        , -1.        , -1.        ]]),
 array([ 0.     ,  0.14983,  0.     , -0.26847, -0.     , -0.26847,
        -0.     ,  0.14983]))

【问题讨论】:

    标签: python arrays numpy tuples unique


    【解决方案1】:

    这应该可以解决您的问题。例如,我为每个数组取了 100 个随机整数。

    import numpy as np
    
    x = np.random.randint(0, 100, (337, 3, 30))
    y = np.random.randint(0, 100, (337, 8))
    
    
    #uniques values in array x
    def find_uniques(x):
        uniques = np.unique(x)
        return uniques
        
    find_uniques(x)
    

    【讨论】:

    • 我看我解释错了。 X 矩阵有重复项,我知道是因为 Counter 函数。每个 X 案例对应于 Y 单元格。假设 X 矩阵的前两行相同,那么我想检查矩阵 Y 中的前两行是否相同或不同。我想做这样的分析。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 2018-05-11
    • 1970-01-01
    • 2016-12-12
    相关资源
    最近更新 更多