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

6.1 numpy 数组及其运算

6.1.1 创建数组

6.1.1.1 array

array(seq):将 seq 转化为数组,返回 numpy 数组
常用参数列表:
seq:list 或 tuple 或 range 对象
注:如果是多维的列表或元组,转化为相应维度的数组
在这里插入图片描述

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:指定底数

在这里插入图片描述

6.1.1.5 zeros

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

在这里插入图片描述

6.1.1.6 ones

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

在这里插入图片描述

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 同时使用
在这里插入图片描述

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 运行结果

在这里插入图片描述

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 尾部,返回新数组

在这里插入图片描述

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 二维数组

在这里插入图片描述
在这里插入图片描述

6.1.4 数组与标量的运算

加、减、乘、除、幂、求余
在这里插入图片描述

6.1.5 数组与数组的运算

两个等长数组的运算
在这里插入图片描述
不同维度的数组进行运算,能广播进行广播,不能广播,报错
在这里插入图片描述

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 运行结果

在这里插入图片描述

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 运算结果

在这里插入图片描述

6.1.8 访问数组中的元素

在这里插入图片描述
切片访问
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.1.9 数组对函数运算的支持

导入模块后,可通过 dir 查看支持哪些函数
在这里插入图片描述

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.1.12.1 where

6.2 矩阵生成与常用操作

6.2.1 矩阵与数组的区别

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

6.2.2 生成矩阵

6.2.2.1 matrix

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

6.2.3 矩阵转置

在这里插入图片描述

6.2.4 查看矩阵特征

在这里插入图片描述

6.2.5 矩阵乘法

 通过*运算符实现

6.2.6 计算相关系数矩阵

6.2.6.1 关于相关系数矩阵

在这里插入图片描述

6.2.6.2 实现方式

corrcoef(s1, s2)
 计算两个数组形式的数据(包括 python 的数组、列表、元组以及 numpy 的数组、矩阵)的相关系数
在这里插入图片描述

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

在这里插入图片描述

6.2.8 计算特征值与特征向量

在这里插入图片描述

6.2.9 计算逆矩阵

在这里插入图片描述

6.2.10 求解线性方程组

在这里插入图片描述

6.2.11 计算向量和矩阵的范数

在这里插入图片描述
在这里插入图片描述

6.2.12 奇异值分解

在这里插入图片描述

其他文章

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

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值