Python 是否有内置的方法或函数将函数映射到numpy.ndarray上?
我想对numpy.ndarray的每个元素应用一个函数,如下所示:Python 是否有内置的方法或函数将函数映射到numpy.ndarray上?,python,numpy,Python,Numpy,我想对numpy.ndarray的每个元素应用一个函数,如下所示: import numpy import math a = numpy.arange(10).reshape(2,5) b = map(math.sin, a) print b 但这给了: TypeError: only length-1 arrays can be converted to Python scalars 我知道我能做到: import numpy import math a = numpy.arange(1
import numpy
import math
a = numpy.arange(10).reshape(2,5)
b = map(math.sin, a)
print b
但这给了:
TypeError: only length-1 arrays can be converted to Python scalars
我知道我能做到:
import numpy
import math
a = numpy.arange(10).reshape(2,5)
def recursive_map(function, value):
if isinstance(value, (list, numpy.ndarray)):
out = numpy.array(map(lambda x: recursive_map(function, x), value))
else:
out = function(value)
return out
c = recursive_map(math.sin, a)
print c
我的问题是:是否有一个内置的函数或方法来实现这一点?它看起来很简单,但我一直没能找到。我正在使用Python2.7。使用np.sin它已经在ndarray上按元素运行了
您还可以重塑为1D阵列,并且本机贴图应该可以正常工作。然后可以再次使用“重塑”恢复原始尺寸
您还可以使用编写类似于np.sin的函数。使用np.sin它已经在ndarray上按元素运行了
您还可以重塑为1D阵列,并且本机贴图应该可以正常工作。然后可以再次使用“重塑”恢复原始尺寸
您还可以使用编写类似于np.sin的函数。关于NUMPync中的ufuncs注意,map和np.vectorize选项非常有用,比使用NumPy内置程序慢得多。现在我知道要查找什么了:要了解np.vectorize和np.frompyfunc之间的区别:请参阅NumPy中的关于UFUNC注意,map和np.vectorize选项要多得多,比使用NumPy内置程序慢得多。现在我知道要查找什么了:关于np.vectorize和np.frompyfunc之间的区别:请看,您可能想研究这个问题,您可能想研究这个问题