Numpy Array creation causing "ValueError: invalid literal for int() with base 10: 'n'"
Numpy Array creation causing "ValueError: invalid literal for int() with base 10: 'n'"
我正在尝试 运行 来自此 repo https://github.com/jgpavez/LSTM---Stock-prediction 的预测性 RNN。 "python lstm_forex.py"
创建一个空的 Numpy 数组似乎有问题
给我带来问题的函数,从倒数第四行 'days' 开始。
def read_data(path="full_USDJPY.csv", dir="/Users/Computer/stock/LSTM2/",
max_len=30, valid_portion=0.1, columns=4, up=False, params_file='params.npz',min=False):
'''
Reading forex data, daily or minute
'''
path = os.path.join(dir, path)
#data = read_csv(path,delimiter=delimiter)
data = genfromtxt(path, delimiter=',',skip_header=1)
# Adding data bu minute
if min == False:
date_index = 1
values_index = 3
hours = data[:,2]
else:
date_index = 0
values_index = 1
dates = data[:,date_index]
print (dates)
days = numpy.array([datetime.datetime(int(str(date)[0:-2][0:4]),int(str(date)[0:-2][4:6]),
int(str(date)[0:-2][6:8])).weekday() for date in dates])
months = numpy.array([datetime.datetime(int(str(date)[0:-2][0:4]),int(str(date)[0:-2][4:6]),
int(str(date)[0:-2][6:8])).month for date in dates])
报错...
Traceback (most recent call last):
File "lstm_forex.py", line 778, in <module>
tick=tick
File "lstm_forex.py", line 560, in train_lstm
train, valid, test, mean, std = read_data(max_len=n_iter, path=dataset, params_file=params_file,min=(tick=='minute'))
File "/Users/Computer/stock/LSTM2/forex.py", line 85, in read_data
int(str(date)[0:-2][6:8])).weekday() for date in dates])
ValueError: invalid literal for int() with base 10: 'n'
我见过一个类似的问题,涉及将“.strip”放在某些内容的末尾。这段代码太复杂了,我不知道该放在哪里。我到处都试过了,但在其他人身上通常会遇到同样的错误 'has no attribute'。现在我不确定什么可以解决它。
您正试图在断言中对字符串 'n' 进行 int()。得到同样的错误:
int('n')
ValueError Traceback (most recent call last)
<ipython-input-18-35fea8808c96> in <module>()
----> 1 int('n')
ValueError: invalid literal for int() with base 10: 'n'
您究竟想从该列表理解中提取什么?它看起来有点像日期信息的元组,但是关于您尝试提取的内容的更多信息,或者代码中的注释更清楚地解释逻辑将帮助我们找到解决方案。
编辑:如果您使用 pandas.Timestamp,它可能会为您完成所有这些转换 - 现在我查看代码,看起来您只是想抽出星期几,而月。如果它不能为您转换时间戳,它可能不起作用,但它很可能会起作用。您正在使用的 CSV 数据的一小部分样本可以很容易地确认。
days = numpy.array(pandas.Timestamp(date).weekday() for dates in dates])
months = numpy.array(pandas.Timestamp(date).month() for date in dates])
我正在尝试 运行 来自此 repo https://github.com/jgpavez/LSTM---Stock-prediction 的预测性 RNN。 "python lstm_forex.py"
创建一个空的 Numpy 数组似乎有问题
给我带来问题的函数,从倒数第四行 'days' 开始。
def read_data(path="full_USDJPY.csv", dir="/Users/Computer/stock/LSTM2/",
max_len=30, valid_portion=0.1, columns=4, up=False, params_file='params.npz',min=False):
'''
Reading forex data, daily or minute
'''
path = os.path.join(dir, path)
#data = read_csv(path,delimiter=delimiter)
data = genfromtxt(path, delimiter=',',skip_header=1)
# Adding data bu minute
if min == False:
date_index = 1
values_index = 3
hours = data[:,2]
else:
date_index = 0
values_index = 1
dates = data[:,date_index]
print (dates)
days = numpy.array([datetime.datetime(int(str(date)[0:-2][0:4]),int(str(date)[0:-2][4:6]),
int(str(date)[0:-2][6:8])).weekday() for date in dates])
months = numpy.array([datetime.datetime(int(str(date)[0:-2][0:4]),int(str(date)[0:-2][4:6]),
int(str(date)[0:-2][6:8])).month for date in dates])
报错...
Traceback (most recent call last):
File "lstm_forex.py", line 778, in <module>
tick=tick
File "lstm_forex.py", line 560, in train_lstm
train, valid, test, mean, std = read_data(max_len=n_iter, path=dataset, params_file=params_file,min=(tick=='minute'))
File "/Users/Computer/stock/LSTM2/forex.py", line 85, in read_data
int(str(date)[0:-2][6:8])).weekday() for date in dates])
ValueError: invalid literal for int() with base 10: 'n'
我见过一个类似的问题,涉及将“.strip”放在某些内容的末尾。这段代码太复杂了,我不知道该放在哪里。我到处都试过了,但在其他人身上通常会遇到同样的错误 'has no attribute'。现在我不确定什么可以解决它。
您正试图在断言中对字符串 'n' 进行 int()。得到同样的错误:
int('n')
ValueError Traceback (most recent call last)
<ipython-input-18-35fea8808c96> in <module>()
----> 1 int('n')
ValueError: invalid literal for int() with base 10: 'n'
您究竟想从该列表理解中提取什么?它看起来有点像日期信息的元组,但是关于您尝试提取的内容的更多信息,或者代码中的注释更清楚地解释逻辑将帮助我们找到解决方案。
编辑:如果您使用 pandas.Timestamp,它可能会为您完成所有这些转换 - 现在我查看代码,看起来您只是想抽出星期几,而月。如果它不能为您转换时间戳,它可能不起作用,但它很可能会起作用。您正在使用的 CSV 数据的一小部分样本可以很容易地确认。
days = numpy.array(pandas.Timestamp(date).weekday() for dates in dates]) months = numpy.array(pandas.Timestamp(date).month() for date in dates])