当前位置: 首页 > 面试题库 >

删除numpy数组的重复行

西门智
2023-03-14
问题内容

如何删除二维numpy数组的重复行?

data = np.array([[1,8,3,3,4],
                 [1,8,9,9,4],
                 [1,8,3,3,4]])

答案应该如下:

ans = array([[1,8,3,3,4],
             [1,8,9,9,4]])

如果有两行相同,那么我想删除一个“重复”行。


问题答案:

您可以使用numpy unique。由于您需要唯一的行,因此我们需要将它们放入元组:

import numpy as np

data = np.array([[1,8,3,3,4],
                 [1,8,9,9,4],
                 [1,8,3,3,4]])

_只是应用np.uniquedata_阵列会导致这样的:

>>> uniques
array([1, 3, 4, 8, 9])

打印出列表中的唯一元素 。因此,将它们放入元组会导致:

new_array = [tuple(row) for row in data]
uniques = np.unique(new_array)

打印:

>>> uniques
array([[1, 8, 3, 3, 4],
       [1, 8, 9, 9, 4]])

更新

在新版本中,您需要设置 np.unique(data, axis=0)



 类似资料:
  • 问题内容: 我想删除彼此跟随的重复项,但不要删除整个数组中的重复项。另外,我想保持顺序不变。 所以如果输入是输出 我找到了一种使用方法,但我正在寻找更快的NumPy解决方案。 问题答案: 一般的想法是用来查找数组中两个连续元素之间的差异。然后我们只索引那些给出差异元素的索引。但由于长度 是1那么短的索引之前,我们需要对涉及diff阵列的开始。 说明:

  • 问题内容: 我有一个numpy值数组: 我想从数组中删除具有重复值的行。例如,上述数组的结果应为: 我不确定如何使用numpy有效地做到这一点而无需循环(数组可能会很大)。有人知道我该怎么做吗? 问题答案: 这是一个选择:

  • 问题内容: 我正在使用2D形状数组存储经度和纬度对。一方面,我必须合并两个2D数组,然后删除所有重复的条目。我一直在寻找类似于numpy.unique的函数,但是我没有运气。我一直在考虑的任何实现都看起来“没有优化”。例如,我正在尝试将数组转换为元组列表,使用set删除重复项,然后再次转换为数组: 是否有任何现有的解决方案,所以我不会重新发明轮子吗? 为了清楚起见,我在寻找: 顺便说一句,我只想使

  • 问题内容: 我有一个可能看起来像这样的数组: ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875, 0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]] 请注意,其中一行的结尾处为零。我想删除任何包含零的行,同时保留所有包含非

  • 问题内容: 我有一个尺寸为(48,366,3)的numpy数组,我想从数组中删除最后一列以使其为(48,365,3)。最好的方法是什么?(所有条目都是整数。我使用的是Python v2.6) 问题答案: 您可以尝试: http://docs.scipy.org/doc/numpy/reference/generated/numpy.delete.html 或者只是获取所需的数组切片并将其写入新数组

  • 问题内容: 我有一个包含我的对象的数组。每个人都有财产。 有没有比我的数组中找到重复的帖子ID的更有效方法? 问题答案: 我将建议2解决方案。 两种方法都必须是平等的 使帖子符合可哈希和平等 在这里,我假设您的struct(或类)具有type 的属性。 解决方案1(丢失原始订单) 要删除重复的内容,您可以使用 解决方案2(保留订单)