Python去重操作及相关函数

栗子1:利用 set

L1 = (1, 1, 2, 2, 3, 3)
print(set(L1))

结果为: {1, 2, 3}

知识点拓展:集合元素的访问

集合元素可以通过转化为列表来进行访问,对于集合,存在交集、并集、差集等等很多操作。

L1 = {1, 2, 5}
L2 = list(L1)[1]
print(L2)

栗子2:利用 np.unique

import numpy as np
L1 = (1, 1, 2, 2, 3, 3)
print(np.unique(L1))

结果为: [1 2 3]


栗子3:利用循环

import numpy as np
L1 = (1, 1, 2, 2, 3, 3)
L2 = list(L1)
L3 = []

for i in L2:
    if i not in L3:
        L3.append(i)
print(L3)

结果为: [1, 2, 3]


以下来自博客:Python 二维数组元素去重 np.unique()函数的使用

import numpy as np

# 4.2.1 一维数组去重
a = np.array([1, 2, 3, 4, 5, 5, 7, 3, 2, 2, 8, 8])
print('去重前:', a)  # 去重前: [1 2 3 4 5 5 7 3 2 2 8 8]
b = np.unique(a)
print('去重后:', b)  # 去重后: [1 2 3 4 5 7 8]

# 4.2.2 二维数组去重
c = np.array(((1, 2), (3, 4), (5, 6), (1, 3), (3, 4), (7, 6)))
print('去重前:', c)
# 方法一:利用set,set是无序不重复集合(推荐)
s = set() #创建空集合
for t in c:
    s.add(tuple(t)) #将数组转为元祖tuple,保证不被修改;再把元祖加入到集合中,完成去重
g = np.array(list(s)) # 将集合转换为列表,最后转为二维数组
print('去重后:', g)
# 合起来写
print('方法一去重后:', np.array(list(set(tuple(t) for t in c))))
# 方法二:转换为虚数
r, i = np.split(c, (1, ), axis=1)
print(r)
print(i)
x = r + i * 1j
# x = c[:, 0] + c[:, 1] * 1j
print('转换成虚数:', x)  # 变成一维数组,可使用np.unique()
print('虚数去重后:', np.unique(x))
print(np.unique(x, return_index=True, return_counts=True))
# return_index=True表示返回另一个参数,这个参数也是一个数组,
# array([0, 3, 1, 2, 5]表示去重后的每个元素在去重前的数组中的位置/下标
# return_counts=True表示返回各元素出现的频次
idx = np.unique(x, return_index=True)[1]
# 第[1]列的数组正是return_index=True返回的内容:在c中的位置/下标
print('二维数组去重:\n', c[idx]) #提取这些下标所在的元素

字符串去重: python中join函数

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值