einsum全稱einstein summation convention(愛因斯坦求和約定),又稱為愛因斯坦標記法。einsum的寫法省去了求和符號,顯得更加簡潔。
常規einsum
c =∑
iaib
ic=\sum_ia_ib_i
c=∑ia
ibic=
aibi
c=a_ib_i
c=aib
ic j=
∑jai
jb
jc_j=\sum_ja_b_j
cj=∑j
aij
bj
c j=
aijb
jc_j=a_b_j
cj=ai
jbjck
lmn=
∑i∑j
aijk
lbij
mn
c_=\sum_i\sum_ja_b_
cklmn
=∑i
∑ja
ijkl
bij
mnaij
klbi
jm
na_b_
aijkl
bijm
n實現c jk
=∑ia
ij
kc_=\sum_ia_
cjk=∑
iai
jk
c = a.
sum(axis=0)
# 常規
c = np.einsum(
'ijk->jk'
, a)
# einsum
更高維向量的求和,實現c∗=
∑iai
∗c_=\sum_ia_
c∗=∑i
ai∗
,可以直接將剩下的維度替換成省略號。
c = np.einsum(
'i...->...'
, a)
# einsum
實現cik
=∑ja
ijbj
kc_=\sum_ja_b_
cik=∑
jai
jbj
k
c = np.dot(a, b)
# 常規
c = np.einsum(
'ij,jk->ik'
, a, b)
# einsum
更高維張量的乘法,實現ckl
=∑i∑
jaij
kbij
lc_=\sum_i\sum_ja_b_
ckl=∑
i∑j
aij
kbi
jl
c = np.einsum(
'ijk,jkl->kl'
, a, b)
# einsum
學習筆記 函式
省隊集訓看著台上的老師講了一上午的莫比烏斯反演,整個人都是懵的,因為我看不清黑板和投影!回家後本來想晚上自學完的,卻奈何自己是個拖延症患者,只敲了 函式 說多了都是淚qaq 的思路如下 1.算質因數個數時因為有將1算上,所以每次都需要將符號取反 2.為什麼這樣做能算出 a 0呢?證明如下 如果有錯可...
函式指標學習筆記
函式指標學習筆記 昨天和室友討論了函式指標的使用方法,感覺收穫挺大的,於是把它整理成筆記,發到部落格裡。就目前所接觸過的情況,我覺得函式指標用法主要有以下兩種 一 以相同的介面,方便地進行各個模組的替換。二 把函式指標作為形參,傳給封裝好的模組,實現使用者不同的功能。這樣說有點抽象了,下面對這兩種應...
Shell學習筆記 函式
1.定義函式 function funcname function 關鍵字有沒有都行.2.函式呼叫 funcname 直接寫函式名就可以呼叫函式了 如果有引數的話可以放在函式名的後邊,以空格隔開 funcname arg1 arg2 arg3.這些引數在函式定義內部的使用是通過 1,n表示,最多到9...