日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Python 數億次數值對對比,如何高效率處理?

來源: 責編: 時間:2024-06-05 17:43:28 163觀看
導讀python有列表a和b,結構都如下所示:[[x1,y1,x2,y2]],x1,y1表示矩形的左下角坐標,x2,y2表示矩形右上角坐標,這樣的矩形有n多個(大數據量),遍歷a中每一個矩形,找出b中與其相交的矩形,輸出a中矩形index和b中相交矩形的index。如

python有列表a和b,結構都如下所示:[[x1,y1,x2,y2]],x1,y1表示矩形的左下角坐標,x2,y2表示矩形右上角坐標,這樣的矩形有n多個(大數據量),遍歷a中每一個矩形,找出b中與其相交的矩形,輸出a中矩形index和b中相交矩形的index。eqy28資訊網——每日最新資訊28at.com

eqy28資訊網——每日最新資訊28at.com

如此大數據量的對比,可以使用numpy中的廣播和矩陣運算來高效處理。eqy28資訊網——每日最新資訊28at.com

eqy28資訊網——每日最新資訊28at.com

首先,將a和b轉換為numpy數組,方便進行矩陣運算。假設a和b分別為:eqy28資訊網——每日最新資訊28at.com

a = [[x1_1, y1_1, x2_1, y2_1], [x1_2, y1_2, x2_2, y2_2], ...]b = [[x1_1, y1_1, x2_1, y2_1], [x1_2, y1_2, x2_2, y2_2], ...]

則可以使用numpy數組的廣播功能,將a和b分別擴展成形狀為(n,m,4)的數組,其中n和m分別為a和b的長度,4表示每個矩形有4個坐標值。具體實現如下:eqy28資訊網——每日最新資訊28at.com

import numpy as npa = np.array(a)b = np.array(b)a = np.expand_dims(a, axis=1)b = np.expand_dims(b, axis=0)a = np.tile(a, (1, len(b), 1))b = np.tile(b, (len(a), 1, 1))

這樣,a和b就可以進行矩陣運算了。接下來,可以使用numpy的邏輯運算和索引功能,找出與每個a矩形相交的b矩形。具體實現如下:eqy28資訊網——每日最新資訊28at.com

overlap = np.logical_and(    np.logical_and(a[:, :, 0] < b[:, :, 2], a[:, :, 2] > b[:, :, 0]),    np.logical_and(a[:, :, 1] < b[:, :, 3], a[:, :, 3] > b[:, :, 1]))result = np.argwhere(overlap)

其中,overlap表示a和b的每個矩形是否相交,result為相交的矩形對的索引。例如,result中的一行表示b中第i個矩形與a中第j個矩形相交。eqy28資訊網——每日最新資訊28at.com

最后,可以將result中的索引轉換為b和a中的矩形索引,輸出即可。完整代碼如下:eqy28資訊網——每日最新資訊28at.com

import numpy as npa = [    [4,6,7,7],    [3,3,4,4]]b = [    [9,3,10,4],    [3,2,5,4],    [4,6,8,7],    [3,3,7,7]]a = np.array(a)b = np.array(b)a = np.expand_dims(a, axis=1)b = np.expand_dims(b, axis=0)a = np.tile(a, (1, len(b), 1))b = np.tile(b, (len(a), 1, 1))overlap = np.logical_and(    np.logical_and(a[:, :, 0] < b[:, :, 2], a[:, :, 2] > b[:, :, 0]),    np.logical_and(a[:, :, 1] < b[:, :, 3], a[:, :, 3] > b[:, :, 1]))result = np.argwhere(overlap)for r in result:    a_index, b_index = r[0], r[1]    print("a index: {}, b index: {}".format(a_index, b_index))

本文鏈接:http://www.www897cc.com/showinfo-26-92128-0.htmlPython 數億次數值對對比,如何高效率處理?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 模擬實現.NET中的Task機制:探索異步編程的奧秘

下一篇: 11道JavaScript 面試題

標簽:
  • 熱門焦點
  • 6月安卓手機性能榜:vivo/iQOO霸占旗艦排行榜前三

    2023年上半年已經正式過去了,我們也迎來了安兔兔V10版本,在新的驍龍8Gen3和天璣9300發布之前,性能榜的榜單大體會以驍龍8Gen2和天璣9200+為主,至于那顆3.36GHz的驍龍8Gen2領先
  • 帥氣純真少年!日本最帥初中生選美冠軍出爐

    日本第一帥哥初一生選美大賽冠軍現已正式出爐,冠軍是來自千葉縣的宗田悠良。日本一直熱衷于各種選美大賽,從&ldquo;最美JK&rdquo;起到&ldquo;最美女星&r
  • K6:面向開發人員的現代負載測試工具

    K6 是一個開源負載測試工具,可以輕松編寫、運行和分析性能測試。它建立在 Go 和 JavaScript 之上,它被設計為功能強大、可擴展且易于使用。k6 可用于測試各種應用程序,包括 Web
  • 摸魚心法第一章——和配置文件說拜拜

    為了能摸魚我們團隊做了容器化,但是帶來的問題是服務配置文件很麻煩,然后大家在群里進行了“親切友好”的溝通圖片圖片圖片圖片對比就對比,簡單對比下獨立配置中心和k8s作為配
  • Flowable工作流引擎的科普與實踐

    一.引言當我們在日常工作和業務中需要進行各種審批流程時,可能會面臨一系列技術和業務上的挑戰。手動處理這些審批流程可能會導致開發成本的增加以及業務復雜度的上升。在這
  • 學習JavaScript的10個理由...

    作者 | Simplilearn編譯 | 王瑞平當你決心學習一門語言的時候,很難選擇到底應該學習哪一門,常用的語言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 新電商三兄弟,“抖快紅”成團!

    來源:價值研究所作 者:Hernanderz 隨著內容電商的概念興起,抖音、快手、小紅書組成的&ldquo;新電商三兄弟&rdquo;成為業內一股不可忽視的勢力,給阿里、京東、拼多多帶去了巨大壓
  • 華為和江淮汽車合作開發百萬元問界MPV?雙方回應來了

    8月1日消息,郭明錤今天在社交平臺發文稱,華為正在和江淮汽車合作,開發售價在100萬元的問界MPV,預計在2024年第2季度量產,銷量目標為上市首年交付5萬輛。
  • OPPO Reno10 Pro英雄聯盟定制禮盒公布:薩勒芬妮同款配色夢幻十足

    5月24日,OPPO推出了全新的OPPO Reno 10系列,包含OPPO Reno10、OPPO Reno10 Pro和OPPO Reno10 Pro+三款新機,全系標配了超光影長焦鏡頭,是迄今為止拍照
Top 主站蜘蛛池模板: 隆安县| 海阳市| 西和县| 荣成市| 灵丘县| 南宫市| 临漳县| 余庆县| 姜堰市| 吉隆县| 民县| 桐城市| 新民市| 荥阳市| 基隆市| 赣榆县| 临泽县| 孙吴县| 新泰市| 师宗县| 泾阳县| 荔浦县| 五指山市| 镇远县| 石屏县| 井研县| 大悟县| 隆回县| 建湖县| 黔南| 庄浪县| 璧山县| 崇明县| 沧州市| 新津县| 阳城县| 沅江市| 沾益县| 满城县| 江西省| 江津市|