numpy Python -计算梯度

gdx19jrr  于 2023-10-19  发布在  Python
关注(0)|答案(2)|浏览(89)

如果我有一个函数作为数组,我想计算它的梯度,那么我将使用梯度函数:

from numpy import gradient
g = gradient(f)

然后我得到梯度,但是如果我想让梯度等于零,我怎么才能找到极值点呢?
我不是程序员,我用的是Python。我还不知道怎么写这样的函数。是为了我的物理作业。我知道如果我写梯度等于零,我会保存值。但是当我试图写这个函数(百万次)时,我总是失败,主要是语法问题。我说的对吗,应该是“如果”函数?有人有例子吗?谢谢.

wmvff8tz

wmvff8tz1#

很晚了;但是如果你想找零,numpy.where非常适合这种情况,而且比在for循环中迭代值要快得多。

from numpy import gradient, where

g = np.gradient(f)
index_zeros = np.where(g == 0)

print(g[index_zeros])
p4rjhz4m

p4rjhz4m2#

我不确定我是否理解了你的问题,但是如果你需要梯度为零的位置,你可以这样写:

from numpy import gradient

g = gradient(f)
zeros = [ i for i,x in enumerate(g) if x.any() == 0 ]
print(zeros)

相关问题