gpt4 book ai didi

python-3.x - 通过对自身执行计算从 1dim numpy 数组创建一个 numpy 矩阵?

转载 作者:行者123 更新时间:2023-12-04 08:18:28 25 4
gpt4 key购买 nike

我有一个形状为 (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 的计算时间?

最佳答案

有几种方法可以获得外乘法。

arr = np.array([1,2,4])

#Using Multiply outer
print(np.multiply.outer(arr, arr)) #As suggested by Warren

#Using broadcasting
print(arr[:,None] * arr[None,:]) #(3,1) * (1,3)
[[ 1  2  4]
[ 2 4 8]
[ 4 8 16]]

[[ 1 2 4]
[ 2 4 8]
[ 4 8 16]]

请注意,输出仍然是一个非常大的矩阵,用于存储在内存中。根据您的需要,我建议考虑使用生成器函数之类的东西。让我知道你将如何使用这个矩阵,我可以建议更高效的方法。

关于python-3.x - 通过对自身执行计算从 1dim numpy 数组创建一个 numpy 矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65599109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com