成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發
對于Python中大數據量的對比,如何高效率處理呢?我們可以使用numpy中的廣播和矩陣運算來高效處理。

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

如此大數據量的對比,可以使用numpy中的廣播和矩陣運算來高效處理。

首先,將a和b轉換為numpy數組,方便進行矩陣運算。假設a和b分別為:

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個坐標值。具體實現如下:

import numpy as np

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))

這樣,a和b就可以進行矩陣運算了。接下來,可以使用numpy的邏輯運算和索引功能,找出與每個a矩形相交的b矩形。具體實現如下:

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個矩形相交。

最后,可以將result中的索引轉換為b和a中的矩形索引,輸出即可。完整代碼如下:

import numpy as np
a = [
    [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))
責任編輯:趙寧寧 來源: python小王子阿亮
相關推薦

2018-08-17 09:27:17

Photon數據爬蟲

2020-03-23 08:36:18

Python編程代碼

2015-09-06 16:05:57

綠色數據中心效率

2010-09-09 16:51:50

2012-07-16 00:51:36

程序員效率

2010-03-21 19:05:19

微軟MSF

2021-11-12 16:54:07

云計算5G云應用

2023-01-10 11:18:29

DevOps

2023-05-17 16:47:47

物聯網智能建筑

2010-04-13 15:14:31

Oracle優化

2015-11-06 16:17:00

華為ICTC2015

2016-12-29 11:41:45

2020-10-08 15:01:17

開發Java程序員

2022-05-18 09:00:00

人工智能機器學習團隊

2012-02-13 13:31:21

惠普激光打印機

2012-03-27 09:17:43

Visual Stud

2010-05-07 09:58:27

SQL Server

2018-05-31 21:16:33

DevOps協作工具開發

2010-08-19 10:18:02

寬帶路由器

2011-01-11 14:03:52

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩不卡视频在线观看 | 久久久久久国产 | 欧美日韩国产精品一区二区 | 欧美日韩精品一区二区三区四区 | 我想看一级黄色毛片 | 人人做人人澡人人爽欧美 | 久久成人免费 | 亚洲精品视频在线播放 | 欧美激情综合 | 亚洲精品日日夜夜 | 色综合久久久久 | www.操com| 日本成人一区二区 | 黑人巨大精品欧美黑白配亚洲 | 求个av网址 | 99久久中文字幕三级久久日本 | 99久久精品国产一区二区三区 | 久久国产婷婷国产香蕉 | 在线色网 | 91精品国产综合久久久久 | 亚洲欧美日韩精品 | 国产精品一区二区免费 | 日韩国产高清在线观看 | 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 一级高清视频 | 韩国久久 | 久久中文字幕一区 | 日日干日日 | 久久网亚洲 | 国产一区 | 在线观看精品视频网站 | 亚洲国产精品久久久久秋霞不卡 | 国产在线精品一区二区三区 | 黄色av网站在线观看 | 中文字幕 国产精品 | 欧美一区二区三区高清视频 | 国产精品美女一区二区三区 | 91在线影院 | 羞羞的视频在线观看 | 天天干天天玩天天操 | 一道本不卡 |