尝试映射函数时
def make_pair(a,b):
return (a,b)
到一个numpy数组
arr = np.array([1,2,3])
我打算做
np.array([make_pair('foo',x) for x in arr])
,但是我read
在较新版本的numpy中,您可以通过将numpy数组传递给为标量类型编写的函数来简单地调用该函数
我尝试将函数make_pair
直接应用于数组(res = make_pair('foo',arr)
),但是无法获得预期的结果(将其映射到数组上)。在下面的代码中:
import numpy as np
def make_pair(a,b):
return (a,b)
arr = np.array([1,2,3])
res_0 = np.array([('foo',1), ('foo',2), ('foo',3)])
res_exp = np.array([make_pair('foo',x) for x in arr])
res = make_pair('foo',arr)
我知道了
>>> res
('foo', array([1, 2, 3]))
该函数将应用于数组arr
而不是映射到数组中(由于模棱两可)。
有没有一种方法可以告诉numpy映射函数,而不是将函数应用于数组? (除了通过列表理解从外部进行映射外,如图所示)
这是Python 3.6.5和最新的numpy的版本,截至2018年7月为Ubuntu 18.04。