我想从numpy数组中删除重复项。
>data = np.array([[1,"a",3,3,4],
[1,8,9,9,4],
[1,"a",3,3,4]])
>new_array = [tuple(row) for row in data]
>uniques = np.unique(new_array)
>uniques
output: array(['1', '3', '4', '8', '9', 'a'], dtype='<U1')
但是我想要的是
output: np.array([[1,"a",3,3,4],[1,8,9,9,4]])
我该怎么办?谢谢。
答案 0 :(得分:0)
使用vstack
:
print(np.vstack({tuple(row) for row in data}))
输出:
[['1' 'a' '3' '3' '4']
['1' '8' '9' '9' '4']]
您不能使它们为整数,因为numpy不支持混合类型的数据。
答案 1 :(得分:0)
NumPy很难处理具有混合数据类型的数组,那么如何使用熊猫drop_duplicates
呢?
import pandas as pd
data = [[1,"a",3,3,4],[1,8,9,9,4], [1,"a",3,3,4]]
pd.DataFrame(data).drop_duplicates().values
# array([[1, 'a', 3, 3, 4],
# [1, 8, 9, 9, 4]], dtype=object)