在NP.GenFromtxt之后分配最大值



我正在尝试找出最高价格(第5列(每天发生的时间(第5列((第1列(,然后在视觉上绘制这些时间。

我相信第一步是查看日期,然后找到第5列的最大值。这是通过for循环完成的吗?如果有2个,会发生什么?

接下来,我想从视觉上查看时间(结实(,最高的价格是在文件中加载更多天的时间。

当我尝试找到最大值时,我会遇到错误。

数据可成功加载此代码:

import numpy as np
my_data = np.genfromtxt('downloads/USDJPY.csv', delimiter=",", dtype=None, names=True, encoding='utf-8')
print (my_data)

这是输出...我需要找到最大(第5列(,这只是数据的一天。

[('6/3/19', '7:05', 'USD/JPY', 108.37 , 108.37 , 108.345, 108.345)
 ('6/3/19', '7:10', 'USD/JPY', 108.345, 108.345, 108.325, 108.325)
 ('6/3/19', '7:15', 'USD/JPY', 108.33 , 108.36 , 108.33 , 108.34 )
 ('6/3/19', '7:20', 'USD/JPY', 108.335, 108.335, 108.295, 108.305)
 ('6/3/19', '7:25', 'USD/JPY', 108.305, 108.305, 108.27 , 108.305)
 ('6/3/19', '7:30', 'USD/JPY', 108.3  , 108.3  , 108.25 , 108.26 )
 ('6/3/19', '7:35', 'USD/JPY', 108.265, 108.295, 108.265, 108.29 )
 ('6/3/19', '7:40', 'USD/JPY', 108.275, 108.29 , 108.25 , 108.29 )
 ('6/3/19', '7:45', 'USD/JPY', 108.285, 108.29 , 108.275, 108.29 )
 ('6/3/19', '7:50', 'USD/JPY', 108.295, 108.35 , 108.295, 108.35 )
 ('6/3/19', '7:55', 'USD/JPY', 108.355, 108.355, 108.325, 108.33 )
 ('6/3/19', '8:00', 'USD/JPY', 108.335, 108.36 , 108.325, 108.35 )
 ('6/3/19', '8:05', 'USD/JPY', 108.345, 108.375, 108.32 , 108.37 )
 ('6/3/19', '8:10', 'USD/JPY', 108.375, 108.38 , 108.365, 108.365)
 ('6/3/19', '8:15', 'USD/JPY', 108.365, 108.37 , 108.33 , 108.33 )
 ('6/3/19', '8:20', 'USD/JPY', 108.335, 108.345, 108.33 , 108.345)
 ('6/3/19', '8:25', 'USD/JPY', 108.35 , 108.38 , 108.35 , 108.38 )
 ('6/3/19', '8:30', 'USD/JPY', 108.37 , 108.39 , 108.37 , 108.38 )
 ('6/3/19', '8:35', 'USD/JPY', 108.375, 108.435, 108.37 , 108.42 )
 ('6/3/19', '8:40', 'USD/JPY', 108.42 , 108.425, 108.4  , 108.405)
 ('6/3/19', '8:45', 'USD/JPY', 108.41 , 108.415, 108.35 , 108.355)
 ('6/3/19', '8:50', 'USD/JPY', 108.355, 108.36 , 108.3  , 108.325)
 ('6/3/19', '8:55', 'USD/JPY', 108.32 , 108.33 , 108.265, 108.27 )
 ('6/3/19', '9:00', 'USD/JPY', 108.27 , 108.29 , 108.25 , 108.265)
 ('6/3/19', '9:05', 'USD/JPY', 108.22 , 108.34 , 108.195, 108.27 )
 ('6/3/19', '9:10', 'USD/JPY', 108.27 , 108.365, 108.25 , 108.34 )
 ('6/3/19', '9:15', 'USD/JPY', 108.33 , 108.355, 108.3  , 108.32 )
 ('6/3/19', '9:20', 'USD/JPY', 108.31 , 108.33 , 108.29 , 108.33 )
 ('6/3/19', '9:25', 'USD/JPY', 108.325, 108.33 , 108.315, 108.325)
 ('6/3/19', '9:30', 'USD/JPY', 108.335, 108.345, 108.32 , 108.345)
 ('6/3/19', '9:35', 'USD/JPY', 108.345, 108.345, 108.325, 108.33 )
 ('6/3/19', '9:40', 'USD/JPY', 108.34 , 108.37 , 108.33 , 108.355)
 ('6/3/19', '9:45', 'USD/JPY', 108.355, 108.4  , 108.345, 108.395)
 ('6/3/19', '9:50', 'USD/JPY', 108.39 , 108.41 , 108.38 , 108.385)
 ('6/3/19', '9:55', 'USD/JPY', 108.385, 108.385, 108.35 , 108.35 )
 ('6/3/19', '10:00', 'USD/JPY', 108.355, 108.39 , 108.355, 108.375)
 ('6/3/19', '10:05', 'USD/JPY', 108.37 , 108.41 , 108.36 , 108.405)
 ('6/3/19', '10:10', 'USD/JPY', 108.4  , 108.405, 108.37 , 108.37 )
 ('6/3/19', '10:15', 'USD/JPY', 108.375, 108.375, 108.35 , 108.36 )
 ('6/3/19', '10:20', 'USD/JPY', 108.36 , 108.37 , 108.355, 108.37 )
 ('6/3/19', '10:25', 'USD/JPY', 108.37 , 108.425, 108.37 , 108.41 )
 ('6/3/19', '10:30', 'USD/JPY', 108.405, 108.42 , 108.395, 108.405)
 ('6/3/19', '10:35', 'USD/JPY', 108.405, 108.435, 108.405, 108.415)
 ('6/3/19', '10:40', 'USD/JPY', 108.405, 108.405, 108.38 , 108.405)
 ('6/3/19', '10:45', 'USD/JPY', 108.4  , 108.425, 108.395, 108.415)
 ('6/3/19', '10:50', 'USD/JPY', 108.42 , 108.445, 108.4  , 108.41 )
 ('6/3/19', '10:55', 'USD/JPY', 108.4  , 108.415, 108.4  , 108.405)
 ('6/3/19', '11:00', 'USD/JPY', 108.395, 108.395, 108.38 , 108.39 )
 ('6/3/19', '11:05', 'USD/JPY', 108.39 , 108.41 , 108.39 , 108.39 )]

我已经尝试了以找到最大值并获得错误。

import numpy as np
my_data = np.genfromtxt('downloads/USDJPY.csv', delimiter=",", dtype=None, names=True, encoding='utf-8')
High = my_data.max[:4]
print (High)

我希望输出高= 108.435,发生在8:35。

一旦找到高高,我该如何将其传递给时间bin?

我也将做低点。

如果我正确理解了您的问题,则可以通过查看NP数组并找到Col 5中最高值的行#来解决此问题,然后在Col 1中获得最高值通讯行

loc_max = my_data[:,4].argmax() #gives row of the max in col 5
time_max = my_data[loc_max,0]

,但看起来您可能由于定界符而导入的问题。

我可以使用:

重新创建您数组的一部分
In [210]: data = np.array([('6/3/19', '7:05', 'USD/JPY', 108.37 , 108.37 , 108.345, 108.345), 
     ...:  ('6/3/19', '7:10', 'USD/JPY', 108.345, 108.345, 108.325, 108.325), 
     ...:  ('6/3/19', '7:15', 'USD/JPY', 108.33 , 108.36 , 108.33 , 108.34 ), 
     ...:  ('6/3/19', '7:20', 'USD/JPY', 108.335, 108.335, 108.295, 108.305), 
     ...:  ('6/3/19', '7:25', 'USD/JPY', 108.305, 108.305, 108.27 , 108.305), 
     ...:  ('6/3/19', '7:30', 'USD/JPY', 108.3  , 108.3  , 108.25 , 108.26 )], 
     ...: dtype='U7,U4,U10,f,f,f,f') 
     ...:  
     ...:  
     ...:                                                                                            
In [211]: data                                                                                       
Out[211]: 
array([('6/3/19', '7:05', 'USD/JPY', 108.37 , 108.37 , 108.345, 108.345),
       ('6/3/19', '7:10', 'USD/JPY', 108.345, 108.345, 108.325, 108.325),
       ('6/3/19', '7:15', 'USD/JPY', 108.33 , 108.36 , 108.33 , 108.34 ),
       ('6/3/19', '7:20', 'USD/JPY', 108.335, 108.335, 108.295, 108.305),
       ('6/3/19', '7:25', 'USD/JPY', 108.305, 108.305, 108.27 , 108.305),
       ('6/3/19', '7:30', 'USD/JPY', 108.3  , 108.3  , 108.25 , 108.26 )],
      dtype=[('f0', '<U7'), ('f1', '<U4'), ('f2', '<U10'), ('f3', '<f4'), ('f4', '<f4'), ('f5', '<f4'), ('f6', '<f4')])

这具有一个复合dtype-具有7个字段

In [212]: data.dtype                                                                                 
Out[212]: dtype([('f0', '<U7'), ('f1', '<U4'), ('f2', '<U10'), ('f3', '<f4'), ('f4', '<f4'), ('f5', '<f4'), ('f6', '<f4')])

字段按名称访问。号码访问行,记录:

In [213]: data['f4']                                                                                 
Out[213]: 
array([108.37 , 108.345, 108.36 , 108.335, 108.305, 108.3  ],
      dtype=float32)

最大位置是:

In [214]: np.argmax(data['f4'])                                                                      
Out[214]: 0
In [215]: np.max(data['f4'])                                                                         
Out[215]: 108.37

最新更新