Python numpy 点数组去重


本文摘自php中文网,作者不言,侵删。

下面为大家分享一篇Python numpy 点数组去重的实例,具有很好的参考价值,希望对大家有所帮助。一起过来看看吧

废话不多说,直接上代码,有详细注释

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

# coding = utf-8

import numpy as np

from IPython import embed

# xy 输入,可支持浮点数操作 速度很快哦

# return xy 去重后结果

def duplicate_removal(xy):

  if xy.shape[0] < 2:

    return xy

  _tmp = (xy*4000).astype('i4')          # 转换成 i4 处理

  _tmp = _tmp[:,0] + _tmp[:,1]*1j         # 转换成复数处理

  keep = np.unique(_tmp, return_index=True)[1]  # 去重 得到索引                 

  return xy[keep]                 # 得到数据并返回 

# _tmp[:,0] 切片操作,因为时二维数组,_tmp[a:b, c:d]为通用表达式,

# 表示取第一维的索引 a 到索引 b,和第二维的索引 c 到索引 d

# 当取所有时可以直接省略,但要加':'冒号 、当 a == b 时可只写 a ,同时不用':'冒号

if __name__ == '__main__':

  if 1: # test

    xy = np.array([[1.0, 1.0, 1.0], [2.0, 2.0, 2.0], [3.0, 0.0, 0.0], [1.0, 1.0, 1.00]])

    print(xy)

    new_xy = duplicate_removal(xy)

    print(new_xy)

  embed()

阅读剩余部分

相关阅读 >>

用pip升级所有包怎么操作

Python中选择结构通过什么语句实现

Python实现堆栈与队列功能(基于list的append与pop方法)的示例

Python将多个映射合并为单个映射的方法与分析(代码实例)

Python文件操作a+与a模式的区别

Python三个数从小到大排序

盘点Python中的常用术语

Python 删除指定时间间隔之前的文件

Python数据挖掘需要学什么

Python matplotlib坐标轴设置的方法

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...