假设我有一个接收3个参数的函数:
def foo(x, y, fac):
return x * y * fac
如何创建2D numpy数组,当参数是新数组拥有的x,y值时,谁的值将是上述函数的结果?
答案 0 :(得分:1)
Numpy已经有一个名为meshgrid
的函数。你会说:
x = np.array([1,2,3])
y = np.array([4,5,6])
X, Y = np.meshgrid(x, y)
result = foo(X, Y, 0.03)
答案 1 :(得分:0)
我想这就是你想要完成的。我不知道你是否可以通过摆脱循环加快速度。
import numpy as np
def foo(x, y, fac):
return x * y * fac
def make2dmatrix(a, b):
C = np.zeros(shape=[a.size, b.size])
for i in range(a.size):
C[i, :] = foo(a[i], b, fac=0.5)
return C
if __name__ == '__main__':
a = np.array([1, 2, 3])
b = np.array([2, 3, 4])
print (make2dmatrix(a, b))
结果
[[ 1. 1.5 2. ]
[ 2. 3. 4. ]
[ 3. 4.5 6. ]]