python删除数组中重复的数字_python – 从numPy数组列表中删除重复项

我有一个普通的Python列表,包含(多维)numPy数组,所有相同的形状和相同数量的值.列表中的某些数组与早期的数组重复.

我有问题,我想删除所有重复项,但数据类型为numPy数组的事实使这一点复杂化…

•我不能使用set(),因为numPy数组不可清除.

•我无法在插入期间检查重复项,因为数组是由函数批量生成的,并使用.extend()添加到列表中.

•如果不使用numPy自己的函数之一,numPy数组不能直接比较,所以我不能只使用“if x in list”…

•列表的内容需要在流程结束时保留numPy数组;我可以比较转换为嵌套列表的数组的副本,但我不能永久地将数组转换为直接的python列表.

关于如何有效删除重复的任何建议?

解决方法:

使用这里的解决方案:Most efficient property to hash for numpy array我们看到,如果a是一个numpy数组,散列最适合使用a.tostring().所以:

import numpy as np

arraylist = [np.array([1,2,3,4]), np.array([1,2,3,4]), np.array([1,3,2,4])]

L = {array.tostring(): array for array in arraylist}

L.values() # [array([1, 3, 2, 4]), array([1, 2, 3, 4])]

标签:python,arrays,duplicate-removal,numpy,list

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值