gpt4 book ai didi

python - numpy 是否在其*所有*功能中广播?

转载 作者:太空狗 更新时间:2023-10-30 02:29:47 26 4
gpt4 key购买 nike

假设我有两个对象 X , Y形状k,1,nk,m,n .我知道 numpy 会自动扩展/重复 X当我执行诸如 X + Y 之类的操作时,沿着第一个维度.这种魔法是否适用于 numpy 中支持/包含的所有数学运算?

例如,我可以做scipy.special.binom(X,Y)吗?并得到预期的结果?我已经尝试了一些特殊功能,但没有收到错误。没有收到错误是否让我得出广播已正确完成的结论?

最佳答案

numpy 确实为所有运营商应用广播,例如。 *+-/等。它还尽可能将其应用于 ufunc 函数。这是 ufunc 定义的一部分。

scipy.special.binom 根据它的文档是一个 ufunc。它已编译,所以我无法查看代码来验证这一点,但我可以做一些简单的测试:

In [379]: special.binom([1,2,3],[[1],[2]])
Out[379]:
array([[ 1., 2., 3.],
[ 0., 1., 3.]])

In [380]: special.binom([1,2,3,4],[[1],[2]])
Out[380]:
array([[ 1., 2., 3., 4.],
[ 0., 1., 3., 6.]])

In [385]: special.binom(np.arange(6).reshape(3,2,1),np.arange(6).reshape(3,1,2)).shape
Out[385]: (3, 2, 2)

(2,3) 和 (2,4) 输出维度与广播输入匹配。这与广播一致。

np.dot 是广播不适用的 numpy 函数示例。

关于python - numpy 是否在其*所有*功能中广播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30698095/

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