我希望在以下相同数组中获取第一个Max值后找到下一个最大值:
Open High Low Close Volume
Date
2017-07-03 370.24 371.35 351.50 352.62 6305401
2017-07-05 347.20 347.24 326.33 327.09 17046701
2017-07-06 317.26 320.79 306.30 308.83 19324495
2017-07-07 313.50 317.00 307.38 313.22 14176915
2017-07-10 312.90 317.94 303.13 316.05 13820889
2017-07-11 316.00 327.28 314.30 327.22 11559402
2017-07-12 330.40 333.10 324.50 329.52 10346127
2017-07-13 330.11 331.60 319.97 323.41 8594466
2017-07-14 323.19 328.42 321.22 327.78 5625211
2017-07-17 325.54 327.10 313.45 319.57 9876912
2017-07-18 317.50 329.13 315.66 328.24 6373720
2017-07-19 328.23 331.65 323.22 325.26 6357014
2017-07-20 326.90 330.22 324.20 329.92 5166188
2017-07-21 329.46 331.26 325.80 328.40 4901606
import datetime as dt
from datetime import timedelta as td
import matplotlib.pyplot as plt
from matplotlib import style
import pandas as pd
import pandas_datareader.data as web
import numpy as np
start = dt.datetime(2017, 7, 1)
# retrieving data from google
df = web.DataReader('TSLA', 'google', start)
Dates = df.index
Highs = df['High'] # Getting only the values from the 'High' Column.
Highest_high = np.amax(Highs) # returns the Highest value
> 371.35 #Output
Highests_index = Highs.argmax() # returns the index of Highest value
> 2017-07-03 00:00:00 #Output
Highest_high_2 = ? # Highest High excluding the previous high discovered.
Highest_index_2 = ? # shall have index of the above Highest_high_2.
如何查找Highest_high_2
和Highest_index_2
?
我用numpy的argmax()找到最大值的索引,用amax找到最大的值。
任何帮助将不胜感激。
答案 0 :(得分:1)
您可以编写如下代码:
a = np.array([10, 18, 20, 8, 15])
arg_max = a.argsort()[-2:][::-1]
highest_1 = a[arg_max[0]] #20
highest_2 = a[arg_max[1]] #18
答案 1 :(得分:1)
你可以这样做,
Highest_high_2 = df['High'].sort_values()[-2]
Highest_index_2 = df['High'].sort_values().index[-2]