
掌握向量化回测
|
101
在纯
Python
中需要一个
for
循环或类似的东西,例如列表推导,这只是
for
循环的
不同语法:
In [1]: v = [1, 2, 3, 4, 5]
In [2]: sm = [2 * i for i in v]
In [3]: sm
Out[3]: [2, 4, 6, 8, 10]
原则上,
Python
允许将一个列表对象乘以一个整数,但是如下所示,
Python
的数据
模型会返回另一个包含原始对象元素两倍的列表对象:
In [4]: 2 * v
Out[4]: [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
4.1.1
使用
Numpy
进行向量化
用于数值计算的
Numpy
软件包(请参见
Numpy
主页(
http://numpy.org
))将向量化
引入了
Python
。
Numpy
提供的主要类是
ndarray
类,它代表
n
维数组。例如,可以
基于列表对象
v
创建此类对象的实例。标量乘法,线性变换和线性代数的相似运算
都可以轻松实现:
In [5]: import numpy as np
In [6]: a = np.array(v)
In [7]: a
Out[7]: array([1, 2, 3, 4, 5])
In [8]: type(a)
Out[8]: numpy.ndarray
In [9]: 2 * a
Out[9]: array([ 2, 4, 6, 8, 10])
In [10]: 0.5 * a + 2
Out[10]: array([2.5, ...