簡體   English   中英

將列表的每個元素乘以整個其他列表

[英]Multiply each element of a list by an entire other list

我有兩個非常大的列表。 基本結構是: a = [1,0,0,0,1,1,0,0]b=[1,0,1,0] 對任一列表的長度沒有限制,對任一列表中元素的值也沒有限制。 我想將a的每個元素乘以b的內容。 例如,以下代碼完成了這項工作:

multiplied = []
for a_bit in a:
     for b_bit in b:
          multiplied.append(a_bit*b_bit)

因此,對於更簡單的a=[1,0]b = [1,0,1,0]情況,output 的multiplied將等於:

>>> print(multiplied)
[1,0,1,0,0,0,0,0]

numpymapzip有沒有辦法做到這一點? 有類似的問題是將列表與列表和一堆其他變體相乘,但我還沒有看到這個問題。 問題是,我上面的嵌套for循環很好,它們可以工作,但它們需要永遠在更大的 arrays 上處理。

您可以使用矩陣乘法來執行此操作,然后將結果展平。

>>> a = np.array([1,0]).reshape(-1,1)
>>> b = np.array([1,0,1,0])
>>> a*b
array([[1, 0, 1, 0],
       [0, 0, 0, 0]])
>>> (a*b).flatten()
array([1, 0, 1, 0, 0, 0, 0, 0])
>>>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM