https://www.numpy.org.c[numpy中文说明文档]
NumPy是Python中科学计算的基础软件包。
它是一个提供多了维数组对象,多种派生对象(如:掩码数组、矩阵)以及用于快速操作数组的函数及API,
它包括数学、逻辑、数组形状变换、排序、选择、I/O 、离散傅立叶变换、基本线性代数、基本统计运算、随机模拟等等。
NumPy包的核心是ndarray对象。
数组对象
数据采集与存储
数组的创建.
- Ones 和 zeros 方法
np.ones((3,3), dtype=bool)
- 用现有数据
np.r_[np.repeat(a, 3), np.tile(a, 3)]
- 随机
每次运行代码时设置相同的seed,则每次生成的随机数也相同,如果不设置seed,则每次生成的随机数都会不一样
np.random.randint,np.random.random,np.random.randn
数组的索引与切片
- 指数索引
arr[arr % 2 == 1] = -1
- 布尔索引
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr[arr % 2 == 1]
np.where(arr % 2 == 1, -1, arr)
- 切片
切片的三个参数分别代表开始索引、结束索引和步长值arr[::-1]
数组的合并
np.concatenate([a, b], axis=0)
np.vstack([a, b])
np.r_[a, b]
数组的布尔运算
unique
intersect1d(x,y) 交集
union1d(x,y) 并集
setdiff1d(x,y) 集合
setxor1d(x,y) 集合对称差
in1d(x,y) x的元素是否包含于y
数组的变换
- 交换数组的行列
arr = np.arange(9).reshape(3,3) arr[:, [1,0,2]] - 反转二维数组的行列
arr[::-1] arr[:, ::-1]
数组值的精度控制
- 设置数字的精度,长度
np.set_printoptions(precision=3),np.set_printoptions(threshold=6),np.set_printoptions(threshold=np.nan)
- e式科学记数法
rand_arr = np.random.random([3,3])/1e3
数组分析
矩阵对象
- 矩阵的创建
-
矩阵的运算
- 矩阵相乘
- 矩阵点乘
- 矩阵求逆、转置
- 矩阵对应行列的最大值,最小值,和
- 矩阵分隔、合并
- 矩阵的分解
矢量运算
python中的zip、map、reduce 、lambda函数的使用。