自变量范围内的最大值和最小值
Maximum and minimum in a range of independent variable
根据@Peaceful James 的回答,我试图减少混淆。因此,编辑问题。
已编辑
我试图在自变量范围内找到最大值(和最小值),即 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.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, axis = 0)
最大值是 0.09995736 (index: (23,0)) 介于 X值 6 and 8
。
2:A = np.argmin(Z, axis = 0)
最小值为 -0.09995736(索引:(7,0)),介于 X 值 2 and 4
。但是,X 值 8 and 10
之间还有另一个最小值。我想知道是否有办法将 X 的某种上下限值传递给 np.argmin
(或类似的命令)以获得 second 函数 Z.
的最小值
感谢任何帮助。谢谢!
使用numpy.argsort
:
https://numpy.org/devdocs/reference/generated/numpy.argsort.html
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]])
根据@Peaceful James 的回答,我试图减少混淆。因此,编辑问题。
已编辑
我试图在自变量范围内找到最大值(和最小值),即 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.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, axis = 0)
最大值是 0.09995736 (index: (23,0)) 介于 X值 6 and 8
。
2:A = np.argmin(Z, axis = 0)
最小值为 -0.09995736(索引:(7,0)),介于 X 值 2 and 4
。但是,X 值 8 and 10
之间还有另一个最小值。我想知道是否有办法将 X 的某种上下限值传递给 np.argmin
(或类似的命令)以获得 second 函数 Z.
感谢任何帮助。谢谢!
使用numpy.argsort
:
https://numpy.org/devdocs/reference/generated/numpy.argsort.html
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]])