使用基于坐标和外部变量的值创建一个新的numpy数组

时间:2015-02-13 06:47:33

标签: python numpy

假设我有一个接收3个参数的函数:

def foo(x, y, fac):
  return x * y * fac

如何创建2D numpy数组,当参数是新数组拥有的x,y值时,谁的值将是上述函数的结果?

2 个答案:

答案 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. ]]