Python金融大数据分析

最新书摘:
  • 九识澪
    2017-08-30
    NumPy提供了常规数组(至少缺乏dtype限制)的广义形式,但是我们暂时坚持使用常规数组,以观察这种专门化措施对性能的影响。做个简单的练习,假定我们要生成一个5000 x 5000个元素组成的矩阵/数组,填入标准正态分布(伪)随机数,然后计算所有元素的总和。首先采用纯Python方法,大量使用列表推导和函数式编程方法以及lambda函数:In [111]: import randomI = 5000In [112]: %time mat = [[random.gauss(0,1) for j in range(l)] for i in range(l)] » a nested list comprehension0ut[112]: CPU times: user 36.5 s, sys: 408 ms, total: 36.9 s Wall time: 36.4 sIn [113]: %time reduce(lambda x, y: x + y, reduce(lambda x, y: x + y, row for row in mat])0ut[113]: CPU times: user 4.3 s, sys: 52ms, total: 4.35s 678.5908519876647现在转向NumPy,看看同一个问题如何解决。为方便起见,NumPy子库random提供了多种函数,以初始化numpy.ndarray对象,同时填入(伪)随机数:In [114]: %time mat = np.random.standard_normal((I, I))0ut[114]: CPU times: user 1.83 s, sys: 40 ms, total: 1.87 s Wall time: 1.87 s in [115]:...