如何改进2D numpy数组数组中重复元素的删除?

时间:2017-08-30 23:46:53

标签: python arrays numpy

我尝试运行下面的代码,但需要很长时间,有没有办法改进这段代码?我尝试了很多python函数,但所有看起来都只是为了与1D数组一起工作,对不起代码我很陌生:

返回包含唯一元素的数组的函数:

<link href="@BotDetect.Web.CaptchaUrls.Absolute.LayoutStyleSheetUrl" rel="stylesheet" type="text/css" />

验证给定元素是否已在数组中的函数:

def get_unique_values(dataset):
    uniqueimages=np.empty(dataset.shape, dtype=np.float32)
    u=0

    for i in range(dataset.shape[0]):
        if (check_if_exists(dataset[i,:,:],uniqueimages)==0):
            uniqueimages[u,:,:]=dataset[i,:,:]
            u=u+1

    return uniqueimages[0:u,:,:] 

然后我运行这个给出一个3D数组作为输入(shape = 2000,28,28):

def check_if_exists( q,a ):
    r=0
    for i in range(a.shape[0]):
        if np.array_equal(q,a[i,:,:]):
            r=1
            break

    return r
编辑:这个问题在另一个相关问题中解决了,感谢Divakar!

1 个答案:

答案 0 :(得分:0)

如果要从numpy数组中获取唯一元素,可以使用numpy @Input() someInputVariableInModule1函数。

@Input()