繁体   English   中英

Numpy 将函数应用于数组

[英]Numpy apply function to array

例如,我有功能:

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. 0. 0. 0. 0. 0.] . 如何实现一致性?

您可以使用下面的代码来实现理想的输出

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

比以前的答案更明确:

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

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

要迭代数组,对每个元素计算函数,然后将其存储到结果数组中,列表迭代器始终如一地工作:

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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM