Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用numpy声明新的数学函数_Python_Numpy_Numpy Ndarray - Fatal编程技术网

Python 使用numpy声明新的数学函数

Python 使用numpy声明新的数学函数,python,numpy,numpy-ndarray,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上。f=np.sin(x)将np.sin(x)的返回值赋值给f(由于x未定义,因此无法计算)。

一个简单的问题:

为什么

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上。

f=np.sin(x)
np.sin(x)
的返回值赋值给
f
(由于
x
未定义,因此无法计算)。即使定义了
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
的更多详细信息,请访问非常好-谢谢。假设我正在寻找存储sin(x)+sin(3.456x)-有一种简单的方法吗?@andrewhelan是的,您可以使用
def
def(x):返回sin(x)+sin(3.4*x)
f
是一个数字而不是一个函数
def(x):…
是python中定义函数的正常方法。在numpy中没有一种特殊的数学方法。这实际上被PEP8认为不是Pythonic。命名为lambda的人不受欢迎。相反,您应该使用
def
。非常感谢您-我真的很感激您给出的具体答案,并且没有居高临下的态度!我以后会在StackExchange上发布一些简单的问题。@DeepSpace是真的,但PEP 8更多的是你所说的“指导原则”,而不是实际的规则(《加勒比海盗无耻》参考)