亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

從兩個數組的乘積創建一個數組元素

從兩個數組的乘積創建一個數組元素

躍然一笑 2022-12-20 13:54:17
我有一個項目,其中,在將數組相乘之后,我必須將它們排列成一個單獨的數組(按元素)并得到它們的總和。As an example:a = [1, 0, 1]b = [[3,5,2], [5,4,3], [5,2,2]]c = a*bc = [ [3, 5, 2]      [0, 0, 0]      [5, 2, 2] ]現在,我想將答案放在一個單獨的數組元素中,例如:r1 = [3, 0, 5]r2 = [5, 0, 2]r3 = [2, 0, 2]然后,得到它的總和。sum_r1 = [8]sum_r2 = [7]sum_r3 = [4]到目前為止,我只能對乘法進行編碼。我仍在為后續步驟嘗試適當的代碼。我的代碼如下所示: [EDIT] def fitness_score(a, b):   c = numpy.multiply(a, b)   trns = numpy.transpose(c)   s = numpy.sum(trns, axis=1)   return s輸出給出了答案,但它有類似這樣的錯誤:ValueError:操作數無法與形狀 (500,3) (3,3) 一起廣播。請注意,a 中的值是隨機獲得的。任何幫助,將不勝感激!先感謝您!
查看完整描述

1 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

您可以使用 NumPy,只需在第二個矩陣上使用轉置即可獲得所需的結果。


import numpy as np

a = [1, 0, 1]

b = [[3,5,2], [5,4,3], [5,2,2]]

a = np.array(a)

b = np.array(b)

mul = a*b.T

#array([[3, 0, 5],

#       [5, 0, 2],

#       [2, 0, 2]])


s = np.sum(a*b.T, axis=1)

#array([8, 7, 4])

如果您有 a 的500 by 3異形數組。你可以試試這個:


import numpy as np

a = [[1, 0, 1] for _ in range(500)]

b = [[3,5,2], [5,4,3], [5,2,2]]

a = np.array(a)

b = np.array(b)


mul = [a_c*b.T for a_c in a]

#array([[3, 0, 5],

#       [5, 0, 2],

#       [2, 0, 2]])


s = np.sum(mul, axis=-1)


print(s)


查看完整回答
反對 回復 2022-12-20
  • 1 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號