gpt4 book ai didi

python - numpy.apply_along_axis 究竟执行什么?

转载 作者:太空狗 更新时间:2023-10-29 17:05:35 24 4
gpt4 key购买 nike

我遇到了 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] 应用函数,即 [[1,2,3], [4,5,6] 中的轴 0, [7,8,9]]

显然我错了。你能纠正我吗?

最佳答案

apply_along_axis 沿输入数组的一维切片应用提供的函数,切片沿您指定的轴截取。因此,在您的示例中,new_func 沿第一个轴应用于数组的每个切片。如果您使用矢量值函数而不是标量,它会变得更清晰,如下所示:

In [20]: b = np.array([[1,2,3], [4,5,6], [7,8,9]])

In [21]: np.apply_along_axis(np.diff,0,b)
Out[21]:
array([[3, 3, 3],
[3, 3, 3]])

In [22]: np.apply_along_axis(np.diff,1,b)
Out[22]:
array([[1, 1],
[1, 1],
[1, 1]])

此处,numpy.diff(即相邻数组元素的算术差)沿输入数组的第一轴或第二轴(维度)的每个切片应用。

关于python - numpy.apply_along_axis 究竟执行什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9019581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com