例如,以下操作可以很好地工作:
import numpy as np
time = np.linspace(0, 3, 4)
func = lambda x : x
print(func(time))
>>> [0, 1, 2, 3]
我想对以向量为输入的函数做同样的处理。例如,我希望发生以下情况:
inps = np.array([[1, 2], [3, 4], [5, 6]])
sum_func = lambda x : x[0] + x[1]
print(sum_func(inps))
>>> [3, 7, 11]
但最终返回的是[3, 3]
,它只是每列中前两个元素的总和。我怎样才能让我想要发生的事情真的发生?
如果可能的话,我想避免for循环。例如,下面的代码行得通
inps = np.array([[1,2], [3,4], [5,6]])
def func(x):
vals = []
for x in x.tolist():
vals.append(x[0] + x[1])
return np.array(vals)
print(func(inps))
>>> [3, 7, 11]
但有没有其他方法可以做到这一点?
1条答案
按热度按时间qgelzfjb1#
Numpy包含大量用于操作Numy数组的函数。您应该知道the documentation。Here是数学函数的列表。
sum function在这里将派上用场,因为我们想要对每一行求和:
这将沿着对应于行的第一个轴求和(记住,在Python中,我们从0开始计数)。