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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

關(guān)于在 np.where 語句中使用 np.logical_and 的問題

關(guān)于在 np.where 語句中使用 np.logical_and 的問題

冉冉說 2023-06-20 14:21:43
考慮 4 列數(shù)組 Q 的一個(gè)小樣本。我的目標(biāo)是消除 Q 的行,其中BOTH columns 0 and 2 are equal, AND columns 1 and 3 are equal。所以,[1, 2, 1, 2]需要去,也一樣[3, 4, 3, 4]。我認(rèn)為下面的代碼會(huì)起作用。import numpy as npQ = np.array([[1, 2, 1, 2],              [1, 2, 1, 4],              [2, 4, 3, 4],              [3, 4, 3, 4],              [4, 7, 2, 5]])output = Q[np.where(np.logical_and(Q[:,0] != Q[:, 2], Q[:,1] != Q[:, 3]))]print(output)[[4 7 2 5]]此代碼消除了所需的兩行,但它也刪除了[1, 2, 1, 4]和[2, 4, 3, 4]。換句話說,它正在做:“如果 V[:,0] != V[:, 2] 則刪除記錄,如果 V[:,1] != V[:, 3] 也刪除記錄”。我希望它:“如果 V[:,0] != V[:, 2] 和 V[:,1] != V[:, 3] 都刪除記錄”。這不是 logical_and 的意思嗎?對(duì)我所缺少的有什么見解嗎?
查看完整描述

1 回答

?
滄海一幻覺

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

您所描述的所需輸出是:

output = Q[~((Q[:,0]==Q[:,2]) * (Q[:,1]==Q[:,3]))]

或者同樣:

output = Q[~(np.logical_and(Q[:,0]==Q[:,2], Q[:,1]==Q[:,3]))]

或者同樣:

output = Q[np.logical_or(Q[:,0]!=Q[:,2], Q[:,1]!=Q[:,3])]

或者同樣:

output = Q[(Q[:,0]!=Q[:,2]) + (Q[:,1]!=Q[:,3])]

但我更喜歡這種方式(這可能更快):

output = Q[(Q[:,0:2]!=Q[:,2:]).any(1)]

請(qǐng)注意,您不需要np.where。布爾掩碼適用于數(shù)組的行Q。

輸出:

[[1 2 1 4]
 [2 4 3 4]
 [4 7 2 5]]


查看完整回答
反對(duì) 回復(fù) 2023-06-20
  • 1 回答
  • 0 關(guān)注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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