我有一個名爲old_func
的舊函數,它輸入兩個位置參數x
和y
。該函數的輸入是這樣寫的使用元組作爲輸入:向量化python函數
def old_func(position):
x, y = position
return x**2 + y**2
我現在想調用該函數在值的網格的快速簡便的方法:
xx = numpy.linspace(0, 1, 100)
yy = numpy.linspace(0, 1, 100)
X, Y = numpy.meshgrid(xx, yy)
array_positions = (X,Y)
old_fun(array_positions)
意圖x
中的每個操作都在X
上完成,y
也是如此。我嘗試使用numpy.vectorize
向量化該功能,但這不起作用。我寧願不更改函數來接受NumPy數組,因爲這會花費太長時間。
謝謝我認爲你是對的,但是因爲我的'old_func'函數在技術上是一個單獨元組的函數,我需要'np.apply_along_axis(old_func,0,(X_flattened,Y_flattened))'對嗎? – Jack
是的,沒錯!我相應地修改了答案。 –