我遇到了一个问题,似乎无法理解通过数组循环的概念。我的目标是将数组中的每个值除以前面的值。有点像i / i-1
我正在划分收盘价股票数据。我的目标是将该值存储到一个新数组中。
股票数据的一个例子可能是[1000,1002,1008,999] 输出应该看起来像[1,1.002,1.005988,0.99107]
这是我的代码
date, closep, highp, lowp, openp, volume = np.loadtxt(stockFile, delimiter=',', unpack=True,
converters={ 0: mdates.strpdate2num('%Y%m%d')})
normalizedData = []
for i in closep:
na_normalized_price = closep/closep[i-1]
print na_normalized_price
normalizedData.append(na_normalized_price)
我的两个问题如下:
它不会停止分裂 - 所以我猜测我需要某种计数来结束循环
错误: Traceback(最近一次调用最后一次): 文件" C:\ Users \ antoniozeus \ Desktop \ BuyAndHold.py",第31行,in na_normalized_price = closep / closep [i-1] IndexError:索引越界
我不相信我理解如何追加numpy
答案 0 :(得分:2)
请记住,numpy操作是元素。
所以只需将数组除以一个已经偏移的数据;
In [1]: import numpy as np
In [2]: a = np.array([1000, 1002, 1008, 999])
In [3]: b = a[1:]
In [4]: b/a[:-1]
Out[4]: array([ 1.002 , 1.00598802, 0.99107143])
In [5]: np.insert(b/a[:-1], 0, 1.0)
Out[5]: array([ 1. , 1.002 , 1.00598802, 0.99107143])