从 * args 参数函数中获取两个 numpy 数组,与提供给该函数的完全一样
Get two numpy arrays from an * args parameter function exactly as they were supplied to that function
我一个函数描述如下(非常简化的版本):
def my_func(*args):
c = other_func(args)
return c
而other_func定义为:
def other_func(a, b):
c = a + b
return c
我还有两个 numpy 数组:
a = [[1.] [2.]]
b = [[2.] [5.]]
我想将 a 和 b 传递给 my_func 并完全按照传递它们的方式检索它们:
我想要的结果是:
c = my_func(a, b)
有:
c = [[3.] [7.]]
但是当我像上面那样调用 my_func 时,我得到这个错误:
TypeError: other_func missing 1 required positional argument: 'b'
我认为问题在于 my_func 无法解压数据。
我查看了一个几乎相似的主题(下面的 link),但它不足以帮助我解决我的问题。另外,我不想使用循环,它对我的工作不实用。
Link : How to split list and pass them as separate parameter?
谁能帮我解决这个问题?
提前谢谢你。
换行
c = other_func(args)
至
c = other_func(*args)
您想遍历 args
列表并解压缩每个数组并将其分别输入到 other_func
中,如下所示:
results = []
for arg in args:
results.append(other_func(*arg))
给定这 2 (2,1) 个数组,a+b
生成您想要的结果:
In [776]: a = np.array([[1.], [2.]])
...: b = np.array([[2.], [5.]])
In [777]: a+b
Out[777]:
array([[3.],
[7.]])
In [778]: def my_func(a,b):
...: return a+b
...:
In [779]: my_func(a,b)
Out[779]:
array([[3.],
[7.]])
有一定的歧义,因为它们组成的矩阵是对称的
In [780]: np.concatenate((a,b), axis=1)
Out[780]:
array([[1., 2.],
[2., 5.]])
添加行或列都会产生 [3,7] 个值。
总体而言,您的问题没有明确说明
我一个函数描述如下(非常简化的版本):
def my_func(*args):
c = other_func(args)
return c
而other_func定义为:
def other_func(a, b):
c = a + b
return c
我还有两个 numpy 数组:
a = [[1.] [2.]]
b = [[2.] [5.]]
我想将 a 和 b 传递给 my_func 并完全按照传递它们的方式检索它们: 我想要的结果是:
c = my_func(a, b)
有:
c = [[3.] [7.]]
但是当我像上面那样调用 my_func 时,我得到这个错误:
TypeError: other_func missing 1 required positional argument: 'b'
我认为问题在于 my_func 无法解压数据。 我查看了一个几乎相似的主题(下面的 link),但它不足以帮助我解决我的问题。另外,我不想使用循环,它对我的工作不实用。
Link : How to split list and pass them as separate parameter?
谁能帮我解决这个问题?
提前谢谢你。
换行
c = other_func(args)
至
c = other_func(*args)
您想遍历 args
列表并解压缩每个数组并将其分别输入到 other_func
中,如下所示:
results = []
for arg in args:
results.append(other_func(*arg))
给定这 2 (2,1) 个数组,a+b
生成您想要的结果:
In [776]: a = np.array([[1.], [2.]])
...: b = np.array([[2.], [5.]])
In [777]: a+b
Out[777]:
array([[3.],
[7.]])
In [778]: def my_func(a,b):
...: return a+b
...:
In [779]: my_func(a,b)
Out[779]:
array([[3.],
[7.]])
有一定的歧义,因为它们组成的矩阵是对称的
In [780]: np.concatenate((a,b), axis=1)
Out[780]:
array([[1., 2.],
[2., 5.]])
添加行或列都会产生 [3,7] 个值。
总体而言,您的问题没有明确说明