使用 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
。即使定义了 x
,f(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
一个简单的问题:
为什么
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
。即使定义了 x
,f(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