Python在数组的每一列上应用函数

时间:2016-01-14 23:16:56

标签: python scipy

我正在尝试将函数InterpolatedUnivariateSpline用作:

from scipy.interpolate import InterpolatedUnivariateSpline
A = np.array([1,2,3,4,5])
B = np.array([11,34,56,78,19])
C = np.random.normal(0, 1, (500, 30))
model = InterpolatedUnivariateSpline(A, B, k = 1)
C2 = model(C) #fails with error object too deep for desired array
C2 = model(C[:,0]) #works but is not useful as I need inter-/extra-polation for entire C

那么,我如何将该函数应用于数组C的所有元素

编辑:scipy版本:0.13.2

2 个答案:

答案 0 :(得分:1)

如果我理解正确,你可以使用列表理解:

C2 = [model(i) for i in C]

它将运行" model"在所有元素上并返回列表

答案 1 :(得分:1)

将您的scipy升级到版本0.16.1,它将适用于您的多维数组,即:

C2 = model(C)

作品。