numpy数组划分和追加

时间:2014-03-23 18:37:42

标签: python arrays numpy

我遇到了一个问题,似乎无法理解通过数组循环的概念。我的目标是将数组中的每个值除以前面的值。有点像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)

我的两个问题如下:

  1. 它不会停止分裂 - 所以我猜测我需要某种计数来结束循环

    错误: Traceback(最近一次调用最后一次): 文件" C:\ Users \ antoniozeus \ Desktop \ BuyAndHold.py",第31行,in na_normalized_price = closep / closep [i-1] IndexError:索引越界

  2. 我不相信我理解如何追加numpy

1 个答案:

答案 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])