AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

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

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

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

Oc528資訊網(wǎng)——每日最新資訊28at.com

如此大數(shù)據(jù)量的對比,可以使用numpy中的廣播和矩陣運(yùn)算來高效處理。Oc528資訊網(wǎng)——每日最新資訊28at.com

Oc528資訊網(wǎng)——每日最新資訊28at.com

首先,將a和b轉(zhuǎn)換為numpy數(shù)組,方便進(jìn)行矩陣運(yùn)算。假設(shè)a和b分別為:Oc528資訊網(wǎng)——每日最新資訊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數(shù)組的廣播功能,將a和b分別擴(kuò)展成形狀為(n,m,4)的數(shù)組,其中n和m分別為a和b的長度,4表示每個矩形有4個坐標(biāo)值。具體實(shí)現(xiàn)如下:Oc528資訊網(wǎng)——每日最新資訊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就可以進(jìn)行矩陣運(yùn)算了。接下來,可以使用numpy的邏輯運(yùn)算和索引功能,找出與每個a矩形相交的b矩形。具體實(shí)現(xiàn)如下:Oc528資訊網(wǎng)——每日最新資訊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個矩形相交。Oc528資訊網(wǎng)——每日最新資訊28at.com

最后,可以將result中的索引轉(zhuǎn)換為b和a中的矩形索引,輸出即可。完整代碼如下:Oc528資訊網(wǎng)——每日最新資訊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.tebozhan.com/showinfo-26-92128-0.htmlPython 數(shù)億次數(shù)值對對比,如何高效率處理?

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

上一篇: 模擬實(shí)現(xiàn).NET中的Task機(jī)制:探索異步編程的奧秘

下一篇: 11道JavaScript 面試題

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 6月iOS設(shè)備好評榜:第一蟬聯(lián)榜首近一年

    作為安兔兔各種榜單里變化最小的那個,2023年6月的iOS好評榜和上個月相比沒有任何排名上的變化,僅僅是部分設(shè)備好評率的下降,長年累月的用戶評價和逐漸退出市場的老款機(jī)器讓這
  • JavaScript 混淆及反混淆代碼工具

    介紹在我們開始學(xué)習(xí)反混淆之前,我們首先要了解一下代碼混淆。如果不了解代碼是如何混淆的,我們可能無法成功對代碼進(jìn)行反混淆,尤其是使用自定義混淆器對其進(jìn)行混淆時。什么是混
  • 三言兩語說透設(shè)計模式的藝術(shù)-簡單工廠模式

    一、寫在前面工廠模式是最常見的一種創(chuàng)建型設(shè)計模式,通常說的工廠模式指的是工廠方法模式,是使用頻率最高的工廠模式。簡單工廠模式又稱為靜態(tài)工廠方法模式,不屬于GoF 23種設(shè)計
  • 微軟邀請 Microsoft 365 商業(yè)用戶,測試視頻編輯器 Clipchamp

    8 月 1 日消息,微軟近日宣布即將面向 Microsoft 365 商業(yè)用戶,開放 Clipchamp 應(yīng)用,邀請用戶通過該應(yīng)用來編輯視頻。微軟于 2021 年收購 Clipchamp,隨后開始逐步整合到 Microsof
  • 當(dāng)家的盒馬,加速謀生

    來源 | 價值星球Planet作者 | 歸去來自己&ldquo;當(dāng)家&rdquo;的盒馬,開始加速謀生了。據(jù)盒馬官微消息,盒馬計劃今年開放生鮮供應(yīng)鏈,將其生鮮商品送往食堂。目前,盒馬在上海已經(jīng)與
  • 認(rèn)真聊聊東方甄選:如何告別低垂的果實(shí)

    來源:山核桃作者:財經(jīng)無忌爆火一年后,俞敏洪和他的東方甄選依舊是頗受外界關(guān)心的&ldquo;網(wǎng)紅&rdquo;。7月5日至9日,為期5天的東方甄選&ldquo;甘肅行&rdquo;首次在自有App內(nèi)直播,
  • 造車兩年股價跌六成,小米的估值邏輯變了嗎?

    如果從小米官宣造車后的首個交易日起持有小米集團(tuán)的股票,那么截至2023年上半年最后一個交易日,投資者將浮虧59.16%,同區(qū)間的恒生科技指數(shù)跌幅為52.78%
  • 微軟發(fā)布Windows 11新版 引入全新任務(wù)欄狀態(tài)

    近日,微軟發(fā)布了Windows 11新版,而Build 22563更新主要引入了幾周前曝光的平板模式任務(wù)欄等,系統(tǒng)更流暢了。更新中,Windows 11加入了專門針對平板優(yōu)化的任務(wù)欄
  • 三翼鳥智能家居亮相電博會,讓用戶體驗更真實(shí)

    2021電博會在青島國際會展中心開幕中,三翼鳥直接把“家”搬到了現(xiàn)場,成為了展會的一大看點(diǎn)。這也是三翼鳥繼9月9日發(fā)布了行業(yè)首個一站式定制智慧家平臺后的
Top