金融与量化分析 二;. 科学计算基础包 ---numpy

二>. 科学计算基础包 ---numpy 


1>. ipython魔术命令: 以%开始的命令
---> %run : 执行文件代码
---> %paste : 执行剪贴板代码
---> %timeit : 评估运行时间
---> %pdb : 自动调试


2>. ipython高级功能:

jupyter


3>. numpy-array基础:
a. NumPy 是高性能科学计算和数据分析的基础包,它是pandas等其他各种工具的基础。
b. NumPy的主要功能:
---> ndarray, 一个多维数组结构,高效且节省空间
---> 无需循环对整组数据进行快速运算的数学函数
---> 线性代数,随机数生成和傅里叶变换功能

c. 安装方法: pip install numpy
d. 引用方式: import numpy as np

e. ndarray - 多维数组对象
创建ndarray: np.array(array_like)
f. 数组与列表的区别:
数组对象内的元素类型必须相同
数组大小不可修改


4>. numpy-array创建:
array()  将列表转换为数组,可选择显式指定dtype
arange() range的numpy版 支持浮点数
linspace() 类似arange(),第三个参数为数组长度
zeros() 根据指定形状和dtype创建全0数组
ones()  根据指定形状和dtype创建全1数组
empty() 根据指定形状和dtype创建空数组(随机值)
eye()   根据指定边长和dtype创建单位矩阵

5>. numpy-array索引和切片:

ndarray -- 批量运算

a. 数组和标量之间的运算
---> a+1 a*3 1//a  a**0.5 a>5
b. 同样大小数组之间的运算
---> a+b a/b a**b a%b a==b
 
ndarray -- 索引

a. 一维数组的索引: a[5] //下标为5的a数组数值
b. 多维数组的索引:
列表式写法: a[2][3]
新式写法: a[2,3]

ndarray -- 切片

a. 一维数组的切片: a[5:8] a[4:]    a[2:10] = 1
b. 多维数组的切片: a[1:2, 3:4] a[:, 3:5] a[:, 1]

c. 数组切片与列表切片不同:数组切片时并不会自动复制(而是创建一个视图),
在切片数组上的修改会影响原数组。
--> copy()方法可以创建数组的深拷贝

6>. numpy-array布尔型索引:

a. 问题: 给一个数组,选出数组中所有大于5的数。
---> 答案: a[a>5]

b. 原理:
  -->数组与标量的运算: a>5会对a中的每一个元素进行判断,返回一个布尔数组
  -->布尔型索引:将同样大小的布尔数组传进索引,会返回一个由所有True对应位置的元素的数组。
  
7>. numpy-array花式索引:
a. 问题: 对于一个数组,选出其中第1,3,4,6,7 个元素,组成新的二维数组
---> 答案: a[[1,3,,4,6,7]]

b. 问题: 对一个二维数组,选出其中第一列和第三列,组成新的二维数组。
---> 答案: a[:, [1,3]]

8>. numpy-array通用函数:
numpy -- 通用函数
a. 通用函数: 能同时对数组中所有元素进行运算的函数
b. 常见通用函数
一元函数: abs, sqrt, exp, log, ceil,floor rint trunc, modf, isnan, isinf, cos, sin, tan
二元函数: add, substract, multiply, divide, power, mod, maximum, mininum

c. nan(Not a Number):  不等于任何浮点数(nan != nan)
d. inf(infinity): 比任何浮点数都大
e. NumPy中创建特殊值: np.nan  np.inf
f. 在数据分析中,nan常被用作表示数据缺失值


9>. numpy-统计方法和随机数生成:

sum 求和        min 求最小值
mean 求平均值   max 求最大值
        std 求标准差    argmin 求最小值索引
var 求方差      argmax 求最大值索引

numpy -- 随机数生成
随机数函数在np.random子包内
  rand        给定形状产生随机数组(0到1之间的数)
  randint     给定形状产生随机整数
  choice      给定形状产生随机选择
  shuffle     与random.shuffle相同
  uniform     给定形状产生随机数组

猜你喜欢

转载自blog.csdn.net/u012278016/article/details/80709692