例如,我有功能:
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.]
。如何实现一致性?
答案 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]