[英]Numpy: combine two arrays into a matrix, and then map with a lambda
[英]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.