【发布时间】:2019-08-11 05:29:54
【问题描述】:
我之前问过一个类似的问题,但措辞很糟糕。我想出了一些东西,但还没有成功。我试图通过调用以前的函数来创建一个新的二维数组。我希望 function_2 执行与 function_1 相同的计算,但在 function_2 中它涉及数组而不是单个值。
这就是我所拥有的:
import numpy as np
def function_1(A,B):
A = 10
B = 2
ans = A*B
return ans
def function_2(C,D):
C = np.array([1,2,3,4,5])
D = np.array([1,2,3,4,5])
#here I create a zero array and include some other codes required
for i in range(C): #each i are A values
for j in range(D): #each j are B values
array[i,j] = function_1(C,D)
return array
print(array)
上面的例子给了我这个:
[[25. 25. 25. 25. 25.]
[25. 25. 25. 25. 25.]
[25. 25. 25. 25. 25.]
[25. 25. 25. 25. 25.]
[25. 25. 25. 25. 25.]]
但我希望它对 C 和 D 的每个值进行计算并给我这样的东西:
[[1. 2. 3. 4. 5.]
[2. 4. 6. 8. 10.]
[3. 6. 9. 12. 15.]
[4. 8. 12. 16. 20.]
[5. 10. 15. 20. 25.]]
谢谢
【问题讨论】:
-
C[:, None] * D -
如果
function_1比较复杂,每对元素需要很长时间,你可以使用np.vectorize。
标签: python-3.x numpy