我正在尝试对一个数组迭代执行一个函数,然后用它返回的值组成一个矩阵,如果这是原生的python,我会这样做:
[func(x, y) for y in xrange(Y)]
但是如果我这样做了,我需要用numpy.matrix()来 Package 它,以便将其矢量化。numpy的方法是什么?现在我初始化了一个零矩阵,然后用从for循环中得到的元素填充它,但这看起来效率很低。
biswetbf1#
看看numpy tutorial,特别是关于通用函数或ufunc的部分。对整个数组逐个元素进行操作的函数。这听起来像是你所要求的。记住你可能不需要写你自己的ufunc,而只需要用现有的ufunc写func。例如:
func
def hypot(a, b): return np.sqrt(a**2 + b**2) >>> a = np.array([3., 5., 10.]) >>> b = np.array([4., 12., 24.,]) >>> hypot(a, b) array([ 5., 13., 26.])
1条答案
按热度按时间biswetbf1#
看看numpy tutorial,特别是关于通用函数或ufunc的部分。
对整个数组逐个元素进行操作的函数。
这听起来像是你所要求的。记住你可能不需要写你自己的ufunc,而只需要用现有的ufunc写
func
。例如: