Python:从函数中获取多维矩阵作为结果

2024-04-19 16:11:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个多输入函数,比如说:

def bla(a, b):
    f = a + b
    return f

当我做类似的事情

import numpy as np
bla(np.asarray([0.2,0.4]), np.asarray([2,4]))

结果是:

array([ 2.2,  4.4])

但是,我希望将bla应用于我的每一对可能的输入(bla(0.2, 2)bla(0.2, 4)bla(0.4, 2)bla(0.4, 4)),并获得作为二维矩阵的最终结果。在本例中,我希望结果是:

array([[2.2, 4.2],
[2.4, 4.4]
])

我该怎么做? 我最初的问题是,我有一个三个变量和一个输出的函数,然后我想通过输入每个变量的向量来调用这个函数,这样我就得到了一个三维矩阵


Tags: 函数importnumpyreturndefasnp矩阵
2条回答

不确定是否要在不修改bla()的情况下执行此操作,但对于您的示例,至少这是必须进行更改的地方:

def bla(a, b):
    return np.asarray(a+n for n in b)

它对数组a进行操作,每个b的元素,并用结果构建一个数组。你的例子看起来有点随机(你是怎么得到那些.3分数部分的?),但我猜这就是你想要表达的意思。你知道吗

如果函数bla可以接受数组而不是标量,则可以使用 meshgrid准备输入,以便bla(A, B)返回所需的输出:

import numpy as np
def bla(a, b):
    f = a + b
    return f

A, B = np.meshgrid([0.2,0.4], [2,4], sparse=True)
bla(A, B)

收益率

array([[ 2.2,  2.4],
       [ 4.2,  4.4]])

相关问题 更多 >