簡體   English   中英

將兩個numpy數組合並到具有雙參數函數的矩陣中

[英]Combine two numpy arrays into matrix with a two-argument function

粗略地我想轉換這個(非numpy)for循環:

N = len(left)
M = len(right)
matrix = np.zeros(N, M)
for i in range(N):
  for j in range(M):
    matrix[i][j] = scipy.stats.binom.pmf(left[i], C, right[j])

它有點像點積,但當然在數學上不是點積。 我通常如何矢量化或制作像pythonic / numpythonic這樣的東西?

scipy.stats.binom.pmf已經過矢量化了。 但是,您必須broadcast輸入才能獲得所需的結果。

broadcast_out = scipy.stats.binom.pmf(left[:, None], C, right)

驗證

np.random.seed(314)
left = np.arange(5, dtype=float)
right = np.random.rand(5)
C = 5

broadcast_out = scipy.stats.binom.pmf(left[:, None], C, right)

N = len(left)
M = len(right)
matrix = np.zeros((N, M))
for i in range(N):
  for j in range(M):
    matrix[i][j] = scipy.stats.binom.pmf(left[i], C, right[j])

print(np.array_equal(matrix, broadcast_out))

True

暫無
暫無

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

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