廢話不多說,直接上代碼,有詳細注釋
# coding = utf-8import numpy as npfrom 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()以上這篇Python numpy 點數組去重的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答