一个解决方案是
transpose
pair
:
f_test(scalar, pair.T)
#array([ 3, 10, 13])
或者您可以使用列表理解:
[f_test(scalar=scalar, pair=p) for p in pair]
#[3, 10, 13]
计时结果
看起来第一种方法要快得多。对于长度为100000的阵列,在我的计算机上,速度提高了约270倍!
N = 100000
scalar = 0
pair = np.array([[np.random.randint(0,10), np.random.randint(0,10)] for i in range(N)])
# Using transpose
%%timeit
f_test(scalar, pair.T)
#1000 loops, best of 3: 229 µs per loop
# List comprehension
%%timeit
[f_test(scalar=scalar, pair=p) for p in pair]
#10 loops, best of 3: 62 ms per loop