跳到主要内容

NumPy

NumPy 是数据科学领域的一个强力工具,使得 python 在数学函数的实现和矩阵数组的运算上有着巨大的优势。

学习目标

  • 掌握数组常用操作方法
  • 掌握矩阵及相关函数的使用
  • 掌握随机数函数的使用
  • 熟悉其他常用函数

介绍

Numeric Python 的缩写,数值计算库

python 的列表速度慢

numpy 并行计算

强大的多维数组及吹了数组的函数集合 与 C/C++/FORTRRAN等代码整合工具 科学计算常用的线性代数运算、傅里叶变换、随机数模块等

优势

  • 减少编程量
  • 加运算效率
    • C语言实现
    • 查找、计算效率高
      • 并行计算,避免类型插件
  • 减少内存消耗

ndarray 对象

创建数组

特殊数组

numpy.zeros 全0数组 numpy.ones 全1数组 numpy.arrange 等间距数组 numpy.linspace 等间距数组

数据类型

float float16 complex_ complex64 ...

切片与索引

参数可以为负数

a[列,行]

索引 - a[1] 切片 - a[0:5],左闭又开 步长 - a[0:5:2] slice - slice(start,stop,step) - s = slice(0,5,2)

广播

对于不同形状的数组运算的处理能力, 对不同形状的数组,对较小的数组进行拓展,与交大的数组进行匹配

常用方法

numpy.reshape # 改变数组的形状、维度
numpy.flat # 将数组展开为一维数组
numpy.transpose # 转置,翻转数组
numpy.stack # 链接相同形状数组
numpy.append # 在数组末尾增加元素
numpy.insert # 在指定位置加入元素
numpy.delete # 返回删除后的新数组

矩阵

np.matlib.empty # 返回未初始化的新矩阵 np.matlab.zeros # 返回全0矩阵 np.matlab.ones # 返回全1矩阵 np.matlab.eye # 返回对角矩阵 np.matlab.identity 返回给定大小的单位矩阵 np.matlab.rand # 返回随机数矩阵

转换

节省内存空间,

b = np.mat(a)

复制内存空间

c = np.matrix(a)

运算

矩阵相乘 c = ab d = np.dot(a,b) 元素相乘 c = np.multiply(a,b) d = a2 求逆和转置 c = a.I d = a.T

随机模块及常用方法

np.random.rand # 给定形状的范围在[0,1)随机数 np.random.randn # 正太分布的随机数 np.random.randint # 输出在 [low, high) 范围的随机数 np.random.random([size]) # 范围在 [0,1) 的随机数

分布

beta # 贝塔分布 lognormal # 对数正态分布 normal # 正太分布 poisson # 泊松分布 uniform # 均匀分布

常用函数

算术函数 三角函数 sin/cos/tan/asin/acos/atan 舍入函数 around/floor/ceil 加减乘除 add/subtract/multiply/divide 余数 mod 平方 square/pow/sqrt

统计函数 最大最小值 amin/amax 中位数 median 算术平均 mean 加权平均 average 标准差、方差 std/var

参考

https://education.huaweicloud.com/courses/course-v1:HuaweiX+CBUCNXE081+Self-paced/courseware/9feab9b6cf1e4e28aca73078fef0ae76/39f87ec29cf4415ca199fb844952b1b0/