我在一些代码中遇到了numpy.apply_along_axis函数。而且我不明白关于它的文档。
这是一个文档示例:
>>> def new_func(a):
... """Divide elements of a by 2."""
... return a * 0.5
>>> b = np.array([[1,2,3], [4,5,6], [7,8,9]])
>>> np.apply_along_axis(new_func, 0, b)
array([[ 0.5, 1. , 1.5],
[ 2. , 2.5, 3. ],
[ 3.5, 4. , 4.5]])
据我所知,我理解这些文件,我本以为:
array([[ 0.5, 1. , 1.5],
[ 4 , 5 , 6 ],
[ 7 , 8 , 9 ]])
即在[1,2,3],[4,5,6],[7,8,9]中沿轴[1,2,3]应用函数,即轴0
显然我错了。你能纠正我吗?
该函数在一维数组上沿轴0执行。可以使用“axis”参数指定另一个轴。这个范例的用法是:
该函数沿0维在每个子阵上执行。因此,它是针对一维函数的,并为每个一维输入返回一个一维数组。
另一个例子是:
为一维数组提供标量输出。 当然,您可以设置cumsum或sum中的axis参数来执行上述操作,但这里的要点是它可以用于您编写的任何一维函数。
apply_along_axis
沿输入数组的1D个切片应用提供的函数,切片沿指定的轴进行。因此在您的示例中,new_func
应用于数组中沿第一个轴的每个切片。如果使用向量值函数而不是标量,则会更清楚,如:这里,
numpy.diff
是沿着输入数组的第一个或第二个轴(维度)的每个切片应用的。相关问题 更多 >
编程相关推荐