使用numpy声明新的数学函数

时间:2018-06-17 10:36:49

标签: python numpy numpy-ndarray

一个简单的问题:

为什么

import numpy as np
f = np.sin(x)
print(f(0.3))

返回错误;而

import numpy as np
print(np.sin(0.3))

没有?

假设,例如我想将f存储为:

f(x) = sin(x) + 2*sin(3.4*x)

我该怎么做?如果这个问题太简单,请道歉 - 也许我应该把它贴在StackExchange上。

2 个答案:

答案 0 :(得分:1)

f = np.sin(x)np.sin(x)的返回值(由于x未定义而无法计算)返回f。即使定义了xf(0.3)也会失败,因为浮点数不可调用。

你打算做f = np.sin

import numpy as np

f = np.sin
print(f(0.3))
# 0.295520206661

答案 1 :(得分:0)

如果我理解您的使用正确,则需要lambda功能:

f = lambda x: np.sin(x) + np.sin(3.456 * x)
print(f(0.3))

如果您不熟悉lambda的更多详细信息,请here