簡體   English   中英

Python循環優化涉及2D數組和重復的1D數組的按元素乘積

[英]Python loop optimization involving the element-wise product of a 2D array and a repeated 1D array

當要優化像這樣的循環時,是否存在numpy函數或其他任何函數?

for i in range(0,n):
  a[i, 0:p] = b[i, 0:p] * c[0:p]

在這里,c [0:p]是一維數組(與i索引無關),可以在循環之前存儲一次以節省一些計算。 但是,我更想知道是否存在一個可以代替for循環本身的函數,該函數相當慢。

正如您所指出的,循環可能不是必需的。

assert (c[0:p]).shape == (p,)

在哪里

assert (a[0:n, 0:p]).shape == (n, p)
assert (b[0:n, 0:p]).shape == (n, p)

您可以直接執行矩陣乘法和賦值來代替循環:

a[0:n, 0:p] = b[0:n, 0:p] * c[0:p]

暫無
暫無

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

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