根据字符串应用numpy函数

时间:2016-03-25 10:11:20

标签: python numpy

是否可以根据字符串应用numpy函数? 如果我给'max'致电np.max。

values = np.array([[1,2,-1],[2,3,6], [0,-1,4]]) 
aggregator = 'max'
print np.max(values, axis=0)
>>> [2 3 6]

我希望是这样的:

some_cool_function(aggregator, values, axis=0)
>>> [2 3 6]

这将提供更好的可读性并缩短我的代码。而不是做多个if。

编辑

我找到numpy.apply_along_axis,但它需要一个函数,它不能是一个字符串。

2 个答案:

答案 0 :(得分:4)

我认为您正在寻找getattr

<form action="<c:url value="/admin/users/edit/addRole/${user.userId}" />" method="POST">

答案 1 :(得分:0)

您可以尝试np.apply_along_axis()。例子:

>>> np.apply_along_axis(np.max, 0, values)
array([2, 3, 6])

>>> np.apply_along_axis(np.min, 1, values)
array([-1,  2, -1])

编辑:
如果确实想要使用字符串,您可以只创建一个将字符串映射到函数的字典(例如{'max':np.max, 'min':np.min}),然后将整个事物包装成两行super_cool_function