Numpy将函数应用于数组

时间:2019-03-04 11:23:26

标签: python arrays numpy iteration

例如,我有功能:

f1 = lambda x: x % 2

如果我想修改array = np.linspace(0, 5, 6),我可以做f1(array)。一切都按预期进行:

[0. 1. 0. 1. 0. 1.]

如果我将功能更改为:

f2 = lambda x: 0
print(f2(array))

给我0,而我期望[0. 0. 0. 0. 0. 0.]。如何实现一致性?

3 个答案:

答案 0 :(得分:1)

您可以使用以下代码获得理想的输出

import numpy as np
array = np.linspace(0, 5, 6)
f2 = lambda x: x-x
print(f2(array))

答案 1 :(得分:1)

比以前的答案略显:

import numpy as np
array = np.linspace(0, 5, 6)
f2 = lambda x: np.zeros_like(x)
print(f2(array))

numpy.zeros_like的文档:返回形状和类型与给定数组相同的零数组。

答案 2 :(得分:1)

要遍历数组,评估每个元素的功能,然后将其存储到结果数组中,列表迭代器将始终起作用:

import numpy as np
array = np.linspace(0, 5, 6)
f1 = lambda x: x % 2
f2 = lambda x: 0

print ([f1(x) for x in array])

[0.0,1.0,0.0,1.0,0.0,1.0]

print ([f2(x) for x in array])

[0,0,0,0,0,0]