【发布时间】:2021-04-12 09:31:04
【问题描述】:
我有一个形状为 (100000,) 的 numpy 数组“arr”。我需要创建一个形状为 100000X100000 的 numpy 矩阵“res_matrix”,这样
for i in range(res_matrix.shape[0]):
for j in range(res_matrix.shape[1]):
res_matrix[i][j]= arr[i]*arr[j]
示例输入/输出
arr=[1 2 4]
Output:
res_matrix:
[[1 2 4]
[2 4 18]
[4 8 16]]
有没有办法对这个操作进行向量化,以减少循环计算 00000X100000 的计算时间?
【问题讨论】:
-
np.multiply.outer(arr, arr) -
你也可以使用广播
标签: python-3.x pandas numpy vectorization