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

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

將具有形狀 (x,y,z) 和 (x,) 的 numpy 數(shù)組相乘和

將具有形狀 (x,y,z) 和 (x,) 的 numpy 數(shù)組相乘和

jeck貓 2022-09-20 15:59:46
所以我有一個(gè)3D數(shù)據(jù)集(x,y,z),我想用一組權(quán)重對其中一個(gè)軸(x)求和,w = w(x)。我正在求和的開始和結(jié)束索引對于每個(gè)(y,z)都是不同的,我通過屏蔽3D數(shù)組解決了這個(gè)問題。對于我沒有求和的兩個(gè)變量,權(quán)重是恒定的。關(guān)于實(shí)現(xiàn)和數(shù)學(xué)的答案都是值得贊賞的(有沒有一種聰明的方法?我有一個(gè)形狀 (x,y,z) 的 3D 遮罩?jǐn)?shù)組 (A) 和一個(gè)形狀 (x,) 的 1D 數(shù)組 (t)。有沒有一種好方法可以將A中的每個(gè)(y,z)元素與t中的相應(yīng)數(shù)字相乘,而無需將t擴(kuò)展到3D數(shù)組?我目前的解決方案是使用np.tensordot來制作一個(gè)與A形狀相同的3D數(shù)組,該數(shù)組包含所有t值,但是花費(fèi)運(yùn)行時(shí)構(gòu)建“new_t”數(shù)組感覺非常不令人滿意,該數(shù)組實(shí)際上只是t的y * z副本。當(dāng)前解決方案示例:a1 = np.array([[1,2,3,4],               [5,6,7,8],               [9,10,11,12]])a2 = np.array([[0,1,2,3],               [4,5,6,7],               [8,9,10,11]])#note: A is a masked array, mask is a 3D array of boolsA = np.ma.masked_array([a1,a2],mask)t = np.array([10,11])new_t = np.tensordot(t, np.ones(A[0].shape), axes = 0)return np.sum(A*new_t, axis=0)從本質(zhì)上講,我想以盡可能短的運(yùn)行時(shí)間對所有i,j執(zhí)行t*A[:,i,j],最好不使用太多其他庫,而不是numpy和scipy。產(chǎn)生所需輸出的另一種方法(同樣,運(yùn)行時(shí)間太長):B = [[t*A[:,i,j] for j in range(A.shape[2])] for i in range(A.shape[1])]return np.sum(B,axis=2)
查看完整描述

2 回答

?
開心每一天1111

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

arr1 = np.tensordot(A.T,t,axes=1).T

arr1

array([[ 10,  31,  52,  73],

       [ 94, 115, 136, 157],

       [178, 199, 220, 241]])


查看完整回答
反對 回復(fù) 2022-09-20
?
胡子哥哥

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

像@alyhosny建議的那樣使用張量是有效的,但是使用零替換掩蔽的值


A = np.ma.MaskedArray.filled(A,0)

在與einsum求和之前(感謝@phipsgabler)給了一半的運(yùn)行時(shí)間。最終代碼:


A = np.ma.MaskedArray(A,mask)

A = np.ma.MaskedArray.filled(A,0)

return np.einsum('ijk,i->jk',A,t)


查看完整回答
反對 回復(fù) 2022-09-20
  • 2 回答
  • 0 關(guān)注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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