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

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

檢查 numpy 數(shù)組與特定 NaN 是否相等

檢查 numpy 數(shù)組與特定 NaN 是否相等

12345678_0001 2023-06-27 16:27:37
大多數(shù)浮點(diǎn)表示中可能有幾種不同類(lèi)型的 NaN(例如安靜 NaN、信號(hào) NaN 等)。我認(rèn)為這在 numpy 中也是如此。我有 NaN 的特定位表示,在 C 中定義并導(dǎo)入到 python 中。我希望測(cè)試一個(gè)數(shù)組是否完全包含這個(gè)特定的浮點(diǎn)位模式。有什么辦法可以做到這一點(diǎn)嗎?請(qǐng)注意,我想測(cè)試數(shù)組是否包含這個(gè)特定的NaN,而不是測(cè)試它是否包含一般的 NaN。
查看完整描述

1 回答

?
哈士奇WWW

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

Numpy 允許您直接訪問(wèn)數(shù)組中的字節(jié)。對(duì)于簡(jiǎn)單的情況,您可以直接將 nans 視為整數(shù):


quiet_nan1 = np.uint64(0b0111111111111000000000000000000000000000000000000000000000000000)


x = np.arange(10, dtype=np.float64)

x.view(np.uint64)[5] = quiet_nan1


x.view(np.uint64)

現(xiàn)在您只需比較確切 NaN 的位模式的元素即可。該版本將保留形狀,因?yàn)樵卮笮∠嗤?/p>


float128一個(gè)更通用的解決方案是使用字節(jié),它可以讓您使用在大多數(shù)系統(tǒng)上沒(méi)有相應(yīng)整數(shù)模擬的類(lèi)型:


quiet_nan1l = np.frombuffer((0b01111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000).to_bytes(16, 'big'))


x = np.arange(3 * 4 * 5, dtype=np.float128).reshape3, 4, 5)

x.view(np.uint8).reshape(*x.shape, 16)[2, 2, 3, :] = quiet_nan1l


x.view(np.uint8).reshape(*x.shape, 16)

最終的重塑并不是絕對(duì)必要的,但它非常方便,因?yàn)樗刂詈笠粋€(gè)維度隔離了原始數(shù)組元素。


在這兩種情況下,修改視圖都會(huì)修改原始數(shù)組。這就是一個(gè)觀點(diǎn)的觀點(diǎn)。


當(dāng)然,不言而喻(這就是我這么說(shuō)的原因),這適用于您可能想要分配或測(cè)試的任何其他位模式,而不僅僅是 NaN。


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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