如果我有一个函数作为数组,我想计算它的梯度,那么我将使用梯度函数:
from numpy import gradient g = gradient(f)
然后我得到梯度,但是如果我想让梯度等于零,我怎么才能找到极值点呢?我不是程序员,我用的是Python。我还不知道怎么写这样的函数。是为了我的物理作业。我知道如果我写梯度等于零,我会保存值。但是当我试图写这个函数(百万次)时,我总是失败,主要是语法问题。我说的对吗,应该是“如果”函数?有人有例子吗?谢谢.
wmvff8tz1#
很晚了;但是如果你想找零,numpy.where非常适合这种情况,而且比在for循环中迭代值要快得多。
numpy.where
from numpy import gradient, where g = np.gradient(f) index_zeros = np.where(g == 0) print(g[index_zeros])
p4rjhz4m2#
我不确定我是否理解了你的问题,但是如果你需要梯度为零的位置,你可以这样写:
from numpy import gradient g = gradient(f) zeros = [ i for i,x in enumerate(g) if x.any() == 0 ] print(zeros)
2条答案
按热度按时间wmvff8tz1#
很晚了;但是如果你想找零,
numpy.where
非常适合这种情况,而且比在for循环中迭代值要快得多。p4rjhz4m2#
我不确定我是否理解了你的问题,但是如果你需要梯度为零的位置,你可以这样写: