Fre*_*Foo 11 python numpy vectorization
我有一个数组X,我想将一个函数f应用于所有行X:
# silly example
X = numpy.array([[1, 2, 3, 4, 5],
[6, 7, 8, 9, 0]], 'i')
def f(row): return sum(row)
y = numpy.vectorize(f, 'i')(rows(X))
Run Code Online (Sandbox Code Playgroud)
现在,y应该是array([15,30], 'i').哪种方法或切片魔术将以rows最有效的方式实施?
NumPy实现了"特定轴上的动作"的概念.一般功能是numpy.apply_along_axis():
>>> numpy.apply_along_axis(sum, 1, X)
array([15, 30])
Run Code Online (Sandbox Code Playgroud)
(sum当然可以用任何东西代替).