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

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

Python:在給定其他三個(gè)矩陣的語(yǔ)句的情況下,將NaN分配給矩陣元素

Python:在給定其他三個(gè)矩陣的語(yǔ)句的情況下,將NaN分配給矩陣元素

慕運(yùn)維8079593 2021-04-05 08:19:18
我有三個(gè)2D矩陣(A,B,D)和一個(gè)1D數(shù)組(C)。A主要包含NaN值,但也包含一些非NaN值。我想將NaN分配給矩陣D中的所有元素,同時(shí)滿足以下兩個(gè)條件:(1)如果A [i,j]中的元素為NaN,則D [i,j]應(yīng)為NaN。(2)如果B [i,j]不在(0.3-C [j])到(0.7 + C [j])的范圍內(nèi),則D [i,j]為NaN。也許是因?yàn)槲覍?duì)python還是一個(gè)新手,但我已經(jīng)嘗試了很長(zhǎng)時(shí)間來撰寫這段看似簡(jiǎn)單的代碼,而且我也沒有太多關(guān)于該主題的google python文檔,現(xiàn)在我已經(jīng)用完了時(shí)間。因此,如果有人有一個(gè)有效的解決方案,我會(huì)在這里碰碰運(yùn)氣。據(jù)我了解python,一個(gè)人希望在可能的情況下避免循環(huán),以提高效率,因此,如果有人知道使用python函數(shù)的方法,將不勝感激。提前致謝!下面的代碼不起作用,但是如果上面的代碼不清楚,至少可以說明我的雄心。import numpy as np# Create the fake matrices A, B, C, DA = np.full((4,5), np.nan)A[0,0] = 2A[1,1] = 2A[2,2] = 2A[3,3] = 2A[1,3] = 2B = np.random.rand(4,5)C = np.arange(0.0, 0.1, 0.02)D = np.ones([4,5])# First loop: meant to fulfill the first statementfor i in np.arange(4):    for j in np.arange(5):        D[i,j][np.isnan(A[i,j])] = np.nan# Second loop: meant to fulfill the second statementfor i in np.arange(4):    for j in np.arange(5):        if B[i,j] < (0.3 - C[j]) or B[i,j] > (0.7 + C[j]):            D[i,j] = np.nan
查看完整描述

2 回答

?
蕪湖不蕪

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

由于某些技術(shù)原因,矢量化邏輯運(yùn)算要求使用按位運(yùn)算符。因此,您的條件組合將寫為:


>>> idx = np.isnan(A) | (B < 0.3 - C) | (B > 0.7 + C) 

>>> D[idx] = np.nan

>>> D

array([[ 1., nan, nan, nan, nan],

       [nan, nan, nan, nan, nan],

       [nan, nan,  1., nan, nan],

       [nan, nan, nan,  1., nan]])

(B是)


>>> B

array([[0.5363705 , 0.20608309, 0.60937827, 0.94685545, 0.80861546],

       [0.1716229 , 0.89674041, 0.39352757, 0.84573667, 0.87769432],

       [0.97621636, 0.81509133, 0.3808146 , 0.84032838, 0.07871174],

       [0.11719543, 0.38021362, 0.76113843, 0.70157337, 0.66438894]])


查看完整回答
反對(duì) 回復(fù) 2021-04-13
?
MYYA

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

僅以矢量形式編寫您提到的條件將是:


ind=(np.isnan(A)) + (B<0.3-C)*(B>0.7+C)

D[ind]=np.nan


查看完整回答
反對(duì) 回復(fù) 2021-04-13
  • 2 回答
  • 0 關(guān)注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報(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)