使用 numpy 声明新的数学函数

Declaring new math function using numpy

一个简单的问题:

为什么

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

return一个错误;而

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

没有?

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

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

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

f = np.sin(x)np.sin(x) 的 return 值(因为 x 未定义,甚至无法计算)分配给 f。即使定义了 xf(0.3) 也会失败,因为浮点数不可调用。

你打算做 f = np.sin

import numpy as np

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

您需要一个 lambda 函数,如果我理解正确的话:

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

如果您不熟悉 lambda,可以找到更多详细信息 here