Python 如何删除numpy数组中的重复项(包括字符串)?
我想从numpy数组中删除重复项Python 如何删除numpy数组中的重复项(包括字符串)?,python,numpy,unique,Python,Numpy,Unique,我想从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'
>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')
我该怎么做?谢谢。使用
vstack
:
print(np.vstack({tuple(row) for row in data}))
输出:
[['1' 'a' '3' '3' '4']
['1' '8' '9' '9' '4']]
因为numpy不支持混合类型的数据,所以不能将它们设为整数。numpy不擅长处理具有混合数据类型的数组,那么改用pandas
drop\u 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)
谢谢,我试过了,但它仍然返回
array([[1',a',3',3',4',1',8',9',9',4']],dtype=object)
@user9191983请使用data=np.array([[1,a',3,3,4],[1,8,9,4],[1,a',3,3,4]],dtype=object来初始化您的数据,否则它就不起作用了!谢谢,你给了我比你真正想的更多的建议@用户9191983不客气!如果你觉得有帮助,也可以,谢谢!
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)