這是我的代碼。我想避免for大量迭代的回圈。
iterations = 10000
max_number = 9700
W = is a matrix(300,9700)
def grad_function(x,y):
grad = np.sum(W*(x - y))
return grad
x = np.arange(300)
y = np.arange(9700)
for i in range (iterations):
for j in range(max_number):
result = grad_function(x,y)
print(result)
我嘗試使用該map()函式,但它沒有給我一個包含 9700 個元素的結果;相反,它給了我一個不正確的 300 個元素的串列。
uj5u.com熱心網友回復:
據我了解, amap()與您的嵌套回圈基本相同for,如果您需要檢查矩陣中的每個值,無論如何這將是最快的選項之一。
uj5u.com熱心網友回復:
我認為你正在嘗試做這樣的事情:
W = np.random.random((300, 9700))
x = np.arange(300)
y = np.arange(9700)
result = (W.T @ x) - y
然后result.shape是(9700,)。或者,您可以制作W有形狀(9700, 300),然后您不需要轉置它。
通常,您永遠不需要使用 NumPy 回圈。只需直接對陣列進行數學運算即可。我在這里使用的唯一技巧是@代替np.matmul.
如果您真的想使用數學函式,請務必傳入它需要的所有內容:
def grad(x, y, W):
return (W.T @ x) - y
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/473676.html
下一篇:根據多個條件在矩陣中查找列位置
