Python 自变量范围内的最大值和最小值
根据“和平的詹姆斯”的回答,我试图减少混乱。因此,编辑问题 已编辑 我试图在自变量范围内找到一个最大值(和最小值),即X。我的代码如下所示。注意,这只是一个代表性的函数Python 自变量范围内的最大值和最小值,python,arrays,numpy,max,min,Python,Arrays,Numpy,Max,Min,根据“和平的詹姆斯”的回答,我试图减少混乱。因此,编辑问题 已编辑 我试图在自变量范围内找到一个最大值(和最小值),即X。我的代码如下所示。注意,这只是一个代表性的函数 import numpy as np import matplotlib.pyplot as plt from pandas import * X = np.arange(2, 11, 0.2) Z = np.zeros((len(X),1)) for i in range(0,len(X)): Z[i] = 0.
import numpy as np
import matplotlib.pyplot as plt
from pandas import *
X = np.arange(2, 11, 0.2)
Z = np.zeros((len(X),1))
for i in range(0,len(X)):
Z[i] = 0.1*np.sin(X[i]-5)
print(DataFrame(Z))
A = np.argmax(Z, axis = 0)
B = np.argmin(Z, axis = 0)
C = print("Maximum =",Z[A[0]])
D = print("Minimum =", Z[B[0]])
plt.plot(X,Z,'r-', linewidth = 2)
plt.xlabel('$X$ (-)')
plt.ylabel('$Z$ (-)')
1:A=np.argmax(Z,轴=0)
最大值为0.09995736(索引:(23,0)),介于X值6和8之间
2:A=np.argmin(Z,轴=0)
最小值为-0.09995736(索引:(7,0)),介于X值2和4之间。但是,X值8和10之间还有一个最小值。我想知道是否有一种方法可以将X的某种上限和下限值传递给np.argmin
(或类似命令),以获得函数Z的第二个最小值
感谢您的帮助。谢谢 使用numpy.argsort
:
使用numpy.argsort
:
@平静的詹姆斯:谢谢你的回答。我编辑了我的问题,指出了我的确切疑问。如有任何意见,将不胜感激。再次感谢!:)我编辑了我的答案,希望能回答你的问题。@James:谢谢你的回答。我编辑了我的问题,指出了我的确切疑问。如有任何意见,将不胜感激。再次感谢!:)我编辑了我的答案,希望能回答你的问题。
import numpy as np
X = np.arange(2, 11, 0.2)
Z = np.zeros((len(X),1))
for i in range(0,len(X)):
Z[i] = 0.1*np.sin(X[i]-5)
C = np.argsort(Z, axis=0)
C = C.flatten() # flatten because it is currently an array of 1-dim arrays.
print("Maximum =",Z[C[-1]])
print("Second Maximum =",Z[C[-2]])
print("Second Minimum =",Z[C[1]])
print("Minimum =",Z[C[0]])