gpt4 book ai didi

python - 在 Python 中使用带有 FUN ="-"的外部函数

转载 作者:行者123 更新时间:2023-12-01 05:31:45 25 4
gpt4 key购买 nike

在R中,可以使用outer函数来计算矩阵的外积,但也可以使用其他运算,例如FUN="-"来运算减法。在 Python、NumPy 或 Pandas 中做同样的事情是否可行?

所以我寻找与此 R 代码等效的代码:

outer(x, y, FUN="-")

numpy.outer 中,您可以像在 R 代码中那样编写类似 numpy.outer(x, y) 的内容来计算外积,但只要我知道,没有其他参数允许进行其他运算,例如减法。

那么我怎样才能得到它呢?或者我错过了什么?

最佳答案

您可以使用broadcasting :

In [152]: a = np.arange(5)

In [153]: b = np.arange(8)[::-1]

In [154]: a
Out[154]: array([0, 1, 2, 3, 4])

In [155]: b
Out[155]: array([7, 6, 5, 4, 3, 2, 1, 0])

In [156]: a[:, None] - b
Out[156]:
array([[-7, -6, -5, -4, -3, -2, -1, 0],
[-6, -5, -4, -3, -2, -1, 0, 1],
[-5, -4, -3, -2, -1, 0, 1, 2],
[-4, -3, -2, -1, 0, 1, 2, 3],
[-3, -2, -1, 0, 1, 2, 3, 4]])

其中 a[:, None]a 中插入一个额外的轴,使其成为垂直数组(也可以通过 a.reshape( -1, 1))。因此它自动 broadcasted匹配b

In [157]: a[:, None]
Out[157]:
array([[0],
[1],
[2],
[3],
[4]])

确认匹配:

> a = 0:4
> b = 7:0
> outer(a, b, FUN="-")
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] -7 -6 -5 -4 -3 -2 -1 0
[2,] -6 -5 -4 -3 -2 -1 0 1
[3,] -5 -4 -3 -2 -1 0 1 2
[4,] -4 -3 -2 -1 0 1 2 3
[5,] -3 -2 -1 0 1 2 3 4

关于python - 在 Python 中使用带有 FUN ="-"的外部函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20061955/

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