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

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

Python中計數(shù)器的線性組合

Python中計數(shù)器的線性組合

蕪湖不蕪 2021-09-11 15:44:39
我有一些像下面這樣的 Counter 對象代表等式的左側(cè)和右側(cè):左手邊: (Counter({22.99: 1}), Counter({12.011: 2, 15.999: 2}), Counter({12.011: 7}))右側(cè): Counter({12.011: 15, 15.999: 1})我的目標(biāo)是找到等式兩邊的共同元素,然后確定可以給我右邊的左邊的線性組合。在上面的例子中,要求解的方程是:2A*12.011 + 7B*12.011 = 15W*12.0112A*15.999 = W*15.999我預(yù)計此操作將涉及將 Counter 字典轉(zhuǎn)換為矩陣以求解線性方程組,但我對如何執(zhí)行此操作感到困惑。
查看完整描述

1 回答

?
HUH函數(shù)

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

這是一個非常符合您方法的解決方案。


將每個 Counter 轉(zhuǎn)換為向量,將不同的 ID 視為單獨的維度。

求解線性方程組。

from collections import Counter

import numpy as np

from scipy import linalg



lhs = (Counter({22.99: 1}), Counter({12.011: 2, 15.999: 2}), Counter({12.011: 7}))

rhs = Counter({12.011: 15, 15.999: 1})


# get unique keys that occur in any Counter in 2D

# each unique key represents a separate dimension

ks = np.array([*set().union(rhs, *lhs)])[:, None]


# get a helper function to convert Counters to vectors

ctr_to_vec = np.vectorize(Counter.__getitem__)


lhs_mat = ctr_to_vec(lhs, ks)

rhs_vec = ctr_to_vec(rhs, ks)


# compute coefficients solving the least-squares problem

coefs = linalg.lstsq(lhs_mat, rhs_vec)[0]


is_linear_comb = np.allclose(lhs_mat @ coefs, rhs_vec)


查看完整回答
反對 回復(fù) 2021-09-11
  • 1 回答
  • 0 關(guān)注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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