第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 2 個不同大小的 numpy 數(shù)組中交叉行

在 2 個不同大小的 numpy 數(shù)組中交叉行

FFIVE 2023-03-01 16:16:43
假設(shè)我有 2 個 numpy 數(shù)組;arr1 = np.array([       [1, 2, 3, 4],       [2, 3, 1, 4],       [2, 4, 1, 5],       ...)arr2 = np.array([       [2, 4, 1, 5],       [2, 1, 3, 5],       [1, 2, 3, 4],       ...)arr1我想獲得和的行的交集arr2。我努力了:intersect = np.intersect1d(arr1, arr2)它返回array([1, 2, 3, 4, 5])這意味著按元素相交。我想按行完成這個。它應(yīng)該返回;array(      [2, 4, 1, 5],      [1, 2, 3, 5])
查看完整描述

1 回答

?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個贊

In [3]: arr1 = np.array([ 

   ...:        [1, 2, 3, 4], 

   ...:        [2, 3, 1, 4], 

   ...:        [2, 4, 1, 5], 

   ...:        ]) 

   ...:  

   ...: arr2 = np.array([ 

   ...:        [2, 4, 1, 5], 

   ...:        [2, 1, 3, 5], 

   ...:        [1, 2, 3, 4], 

   ...:        ]) 

                                                                                        

廣播平等后跟all和的適當(dāng)組合any:


In [8]: (arr1[:,None,:]==arr2[None,:,:]).shape                                                       

Out[8]: (3, 3, 4)

In [9]: (arr1[:,None,:]==arr2[None,:,:]).all(axis=2)                                                 

Out[9]: 

array([[False, False,  True],

       [False, False, False],

       [ True, False, False]])

In [10]: (arr1[:,None,:]==arr2[None,:,:]).all(axis=2).any(axis=0)                                    

Out[10]: array([ True, False,  True])


In [12]: arr1[_]                                                                                     

Out[12]: 

array([[1, 2, 3, 4],

       [2, 4, 1, 5]])

帶套


In [19]: set([tuple(row) for row in arr1])                                                           

Out[19]: {(1, 2, 3, 4), (2, 3, 1, 4), (2, 4, 1, 5)}

In [20]: set([tuple(row) for row in arr2])                                                           

Out[20]: {(1, 2, 3, 4), (2, 1, 3, 5), (2, 4, 1, 5)}

In [21]: _19.intersection(_20)                                                                       

Out[21]: {(1, 2, 3, 4), (2, 4, 1, 5)}

===


如果我擴(kuò)展arr2到 4 行:


...: arr2 = np.array([ 

...:        [2, 4, 1, 5], 

...:        [2, 1, 3, 5], 

...:        [1, 2, 3, 4], 

...:        [1, 1, 1, 1], 

...:        ]) 


In [34]: (arr1[:,None,:]==arr2[None,:,:]).all(axis=2).any(axis=0)                                    

Out[34]: array([ True, False,  True, False])

anyon 0 產(chǎn)生一個 4 元素數(shù)組,它必須用于索引arr2(不像arr1我原來那樣):


In [35]: arr2[_]                                                                                     

Out[35]: 

array([[2, 4, 1, 5],

       [1, 2, 3, 4]])

或者any沿著另一個軸:


In [36]: (arr1[:,None,:]==arr2[None,:,:]).all(axis=2).any(axis=1)                                    

Out[36]: array([ True, False,  True])

In [37]: arr1[_]                                                                                     

Out[37]: 

array([[1, 2, 3, 4],

       [2, 4, 1, 5]])

產(chǎn)生all(在本例中)一個 (3,4) 數(shù)組:


In [38]: (arr1[:,None,:]==arr2[None,:,:]).all(axis=2)                                                

Out[38]: 

array([[False, False,  True, False],

       [False, False, False, False],

       [ True, False, False, False]])

any可以減少行或列。


查看完整回答
反對 回復(fù) 2023-03-01
  • 1 回答
  • 0 關(guān)注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號