Python 数据分析与数据可视化(六)numpy 数组和矩阵运算

文章目录

  • 6.1 numpy 数组及其运算
    • 6.1.1 创建数组
      • 6.1.1.1 array
      • 6.1.1.2 arange
      • 6.1.1.3 linespace
      • 6.1.1.4 logspace
      • 6.1.1.5 zeros
      • 6.1.1.6 ones
      • 6.1.1.7 identity
      • 6.1.1.8 random.randint
      • 6.1.1.8 random.rand
      • 6.1.1.9 random.standard_normal
      • 6.1.1.10 diag
    • 6.1.2 测试两个等长数组对应元素是否足够接近
      • 6.1.2.1 isclose、allclose
      • 6.1.2.2 运行结果
    • 6.1.3 修改数组元素值
      • 6.1.3.1 一维数组
        • 6.1.3.1.1 append
        • 6.1.3.1.2 下标
        • 6.1.3.1.3 insert
      • 6.1.3.2 二维数组
    • 6.1.4 数组与标量的运算
    • 6.1.5 数组与数组的运算
    • 6.1.6 数组排序
      • 6.1.6.1 argsort
      • 6.1.6.2 array.argmax、argmin
      • 6.1.6.3 array.sort
      • 6.1.6.4 运行结果
      • 6.1.7 数组的内积运算
        • 6.1.7.1 dot
        • 6.1.7.2 array.dot
        • 6.1.7.3 不使用特定方法
        • 6.1.7.4 运算结果
      • 6.1.8 访问数组中的元素
      • 6.1.9 数组对函数运算的支持
      • 6.1.10 改变数组的形状
        • 6.1.10.1 shape 属性
        • 6.1.10.2 array.reshape
        • 6.1.10.3 array.resize
      • 6.1.11 数组的布尔运算
      • 6.1.12 分段函数
  • 6.2 矩阵生成与常用操作
    • 6.2.1 矩阵与数组的区别
    • 6.2.2 生成矩阵
      • 6.2.2.1 matrix
    • 6.2.3 矩阵转置
    • 6.2.4 查看矩阵特征
    • 6.2.5 矩阵乘法
    • 6.2.6 计算相关系数矩阵
      • 6.2.6.1 关于相关系数矩阵
      • 6.2.6.2 实现方式
    • 6.2.7 计算方差、协方差、标准差
    • 6.2.8 计算特征值与特征向量
    • 6.2.9 计算逆矩阵
    • 6.2.10 求解线性方程组
    • 6.2.11 计算向量和矩阵的范数
    • 6.2.12 奇异值分解
  • 其他文章

6.1 numpy 数组及其运算

6.1.1 创建数组

6.1.1.1 array

array(seq):将 seq 转化为数组,返回 numpy 数组
常用参数列表:
seq:list 或 tuple 或 range 对象
注:如果是多维的列表或元组,转化为相应维度的数组
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第1张图片

6.1.1.2 arange

arange(start, stop, step):类似内置函数 range,返回 numpy 数组
常用参数列表:
start:起始数字
stop:结束数字
step:步长

在这里插入图片描述

6.1.1.3 linespace

linespace(start, stop, count, endpoint=True):生成等差数组
常用参数列表:
start:起始数字
stop:终止数字
count:包含的数字个数
endpoint:指定是否包含终点,False 不包含终点

在这里插入图片描述

6.1.1.4 logspace

linespace(start, stop, count, base=10):生成对数数组
常用参数列表:
start:起始数字
stop:终止数字
count:包含的数字个数
base:指定底数

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第2张图片

6.1.1.5 zeros

zeros(count):生成全 0 数组
常用参数列表:
count:如果接受一个具体的值,返回包含 count 个全 0 一维的数组,如果接受一个元组,返回二维数组

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第3张图片

6.1.1.6 ones

ones(count):生成全 1 数组
常用参数列表:
count:如果接受一个具体的值,返回包含 count 个全 1 一维的数组,如果接受一个元组,返回二维数组

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第4张图片

6.1.1.7 identity

ones(count):返回一个 count*count 的单位数组
常用参数列表:
count:单位数组的行和列数

在这里插入图片描述

6.1.1.8 random.randint

random.randint(min, max, count):生成介于 min、man 之间的随机数组
min:下界
max:上界
count:如果为单个值,返回 1 * count 的随机数组;如果是元组,返回二维随机数组
在这里插入图片描述

6.1.1.8 random.rand

random.rand(count):生成介于 [0, 1) 之间的随机数组
count:返回 1 * count 的随机数组
在这里插入图片描述

6.1.1.9 random.standard_normal

random.standard_normal(count, size=(3, 4, 2)):从标准正态分布中随机挑选 count 个数字,返回一维或多维数组
count:元素个数
size:三维元组,分别代表页、行、列,该参数不能与 count 同时使用
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第5张图片

6.1.1.10 diag

diag(list):生成对角数组,对角线元素为给定的 list,其余元素为 0
list:一维列表
在这里插入图片描述

6.1.2 测试两个等长数组对应元素是否足够接近

6.1.2.1 isclose、allclose

isclose:返回布尔数组
allclose:返回布尔值
常用参数列表:
rtol:指定相对误差
atol:指定绝对误差

6.1.2.2 运行结果

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第6张图片

6.1.3 修改数组元素值

6.1.3.1 一维数组

6.1.3.1.1 append

append(array, element):将 element 追加到 array中
常用参数列表:
array:待修改数组
element

  1. 如果 element 为单个值,把 element 追加到 array 尾部,返回新数组
  2. 如果 element 为一维列表,把 element 的所有元素追加到 array 尾部,返回新数组

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第7张图片

6.1.3.1.2 下标

通过下标修改数组不会产生新数组,而是在原来的数组中直接进行修改
在这里插入图片描述

6.1.3.1.3 insert

insert(array, index, element):在 array 的 index 索引处插入 element,返回新数组
常用参数列表:
array:待修改数组
index:索引
element:待插入元素
在这里插入图片描述

6.1.3.2 二维数组

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第8张图片
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第9张图片

6.1.4 数组与标量的运算

加、减、乘、除、幂、求余
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第10张图片

6.1.5 数组与数组的运算

两个等长数组的运算
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第11张图片
不同维度的数组进行运算,能广播进行广播,不能广播,报错
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第12张图片

6.1.6 数组排序

6.1.6.1 argsort

argsort(array):对 array 进行排序,返回下标数组

6.1.6.2 array.argmax、argmin

array.argmax():返回最大值下标
array.argmin():返回最小值下标

6.1.6.3 array.sort

array.sort():原地排序

6.1.6.4 运行结果

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第13张图片

6.1.7 数组的内积运算

内积运算:仅限两等长数组

6.1.7.1 dot

dot(array1, array2):numpy 提供的方法,对 array1 和 array2 求内积

6.1.7.2 array.dot

array1.dot(array2):数组对象的方法,对 array1 和 array2 求内积

6.1.7.3 不使用特定方法

sum[array1 * array2]:从原理入手,直接计算内积

6.1.7.4 运算结果

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第14张图片

6.1.8 访问数组中的元素

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第15张图片
切片访问
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第16张图片
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第17张图片
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第18张图片

6.1.9 数组对函数运算的支持

导入模块后,可通过 dir 查看支持哪些函数
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第19张图片

6.1.10 改变数组的形状

6.1.10.1 shape 属性

通过属性修改是直接修改原来的数组
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第20张图片

6.1.10.2 array.reshape

不能修改元素个数,修改前,也需要提前计算好,不同的是返回新数组
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第21张图片

6.1.10.3 array.resize

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第22张图片

6.1.11 数组的布尔运算

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第23张图片
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第24张图片

6.1.12 分段函数

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第25张图片

6.2 矩阵生成与常用操作

6.2.1 矩阵与数组的区别

  1. 数组可以是任意维度的(一维、二维、三维…);矩阵只能是二维的
  2. 数组的元素可以是数字,也可以是字符串,或者是其他类型的对象;矩阵的元素只能是数字

6.2.2 生成矩阵

6.2.2.1 matrix

 该方法可以将列表、元组等类型转换为矩阵
注:使用下标访问矩阵元素需要用 x[row, cols] 这种形式访问,而不能使用 x[row][cols] 这种形式

6.2.3 矩阵转置

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第26张图片

6.2.4 查看矩阵特征

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第27张图片

6.2.5 矩阵乘法

 通过*运算符实现

6.2.6 计算相关系数矩阵

6.2.6.1 关于相关系数矩阵

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第28张图片

6.2.6.2 实现方式

corrcoef(s1, s2)
 计算两个数组形式的数据(包括 python 的数组、列表、元组以及 numpy 的数组、矩阵)的相关系数
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第29张图片

6.2.7 计算方差、协方差、标准差

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第30张图片

6.2.8 计算特征值与特征向量

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第31张图片

6.2.9 计算逆矩阵

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第32张图片

6.2.10 求解线性方程组

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第33张图片

6.2.11 计算向量和矩阵的范数

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第34张图片
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第35张图片

6.2.12 奇异值分解

Python 数据分析与数据可视化(六)numpy 数组和矩阵运算_第36张图片

其他文章

Python 数据分析与数据可视化(一)Python 开发环境搭建与编码规范
Python 数据分析与数据可视化(二)数据类型、运算符与内置函数
Python 数据分析与数据可视化(三)列表、元组、字典、集合与字符串
Python 数据分析与数据可视化(四)文件操作
Python 数据分析与数据可视化(五)线性代数基本知识
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算
Python 数据分析与数据可视化(七)pandas数据分析实战
Python 数据分析与数据可视化(八)sklearn机器学习实战
Python 数据分析与数据可视化(工具篇)课程所需扩展库安装
Python 数据分析与数据可视化(实践篇)泰坦尼克号旅客生存预测

你可能感兴趣的:(Python,数据分析与数据可视化)