我有一个基本上返回generalized harmonic number的函数。在
def harmonic(limit, z):
return numpy.sum(1.0/numpy.arange(1, limit+1)**z)
以下是当前函数定义的两个示例:
^{pr2}$当limit
是标量时,您可能会猜到这一点很好,但是我如何使这个函数同时处理1D和2D数组呢?在
下面演示了我要实现的函数的输出示例
>>> limit = np.array([[1, 2], [3, 4]])
>>> harmonic(limit, 1)
array([[1.0, 1.5], [1.833, 2.083]])
在您的示例中,
arange
在[1,limit+1]
范围内生成等间距的1D数组。在现在假设你想要一个均匀分布的多维数组。然后可以使用^{} 生成2D数组的每个组件。将
arange
的结果转换为一个带有list()
的python列表,使其成为ndarray
构造函数的参数的正确格式。在这取决于你的目的。当你处理数学的时候。分析,您需要的可能是网格:
More here.
编辑: 发布代码后: 正如DSM所提到的,
^{pr2}$np.vectorize
是一个很好的方法。From doc如果您只对},如您所示,那么我认为您可以使用^{} :
limit
上的矢量化感兴趣,而不是{注意,对于标量情况,这将返回0维数组。在
实际上,仔细想想,它也应该适用于
^{pr2}$z
的情况:相关问题 更多 >
编程相关推荐