调试代码

  • 使用Numpy通过广播用于每个内部元素,是一种并行化执行思想,普通list用于整体,做计算numpy效率比普通list高。
    1. import numpy as np
    2. import time
    3. start = time.time()
    4. np_list = np.arange(1000)
    5. #normal_list = range(1000)
    6. end = time.time()
    7. print(end-start)

其他验证代码

  1. import numpy as np
  2. import time
  3. mlist = [np.zeros(100)]
  4. print(mlist)
  5. # 可以将普通list作为参数,使用np arryay来初始化.
  6. data = [[1,2,3,4],[5,6,7,8]]
  7. arr_np = np.array(data)
  8. print(arr_np)
  9. # TODO:整一列进行+1
  10. # TODO:整一行进行+1
  11. # 以股票为例 ...
  12. stock_cnt = 200
  13. view_days = 504
  14. # 初始化生成200行,504列的矩阵
  15. stock_day_change = np.random.standard_normal((stock_cnt,view_days))
  16. print(stock_day_change.shape) # 多少行和多少列;
  17. print(stock_day_change[0:1,:5])
  18. # 逻辑条件和筛选
  19. mask = stock_day_change[0:2,0:5] > 0.5
  20. # 返回bool值矩阵
  21. print(mask)
  22. # 生成一份副本
  23. mcopy = stock_day_change.copy()
  24. xx = mcopy[(mcopy > 1)| (mcopy < -1)]
  25. print(xx)
  26. # 其他常用API,返回true /false
  27. ## np.all(mcopy>1)
  28. ## np.any(mcopy>1)
  29. # np.diff() // 前后两个临近数值进行减法运算,默认情况axis=1,axis表示操作轴向0/1 ; 1 是横向。
  30. # np.where() //
  31. # np.save() /np.load() // 本地序列化操作,因此理论上也有序列化反序列化漏洞风险,注意存储的参数名上要加.npy ;
  32. # np.max() 和 np.argmax()区别:后者可以实现通基础哪一只股票在某个交易日涨幅最大。
  33. # 期望np.mean() ; 方差np.var() ; 标准差(np.std());
  34. # plt在可视化中讲到
  35. # plt.plot(stock_day_change)