Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否有内置的方法或函数将函数映射到numpy.ndarray上?_Python_Numpy - Fatal编程技术网

Python 是否有内置的方法或函数将函数映射到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

我想对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(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之间的区别:请看,您可能想研究这个问题,您可能想研究这个问题