python——numpy学习笔记

numpy

numpy概述

运行速度快(C语言编写)
功能用途:数组运算

  • 强大的N维数组对象ndarray
  • 广播功能函数
  • 线性代数、傅里叶变换、随机数生成等

ndarray数组

ndarray数组:

N维数组对象(矩阵),所有元素必须是相同的类型

创建ndarray数组函数:

array:将输入数据转换为ndarray
arange:返回一个ndarray而不是列表
ones:创建一个全1数组
zeros:创建一个全0数组
empty:创建新数组
eye:创建一个N*N的单位矩阵(对角线为1,其余为0)
linspace:创建等差数组

ndarray属性:

ndim:表示维度个数
shape:表示各维度大小
dtype:表示数据类型
size:表示数组大小
len:表示数组长度
itemsize:

指定ndarray数组元素的类型

ndarray数组的基本索引和切片,以及布尔索引

基本索引和切片

与Python列表的索引功能类似

boolean mask

通过关系式找数组中需要的元素
boolean mask:布尔索引,使用布尔数组作为索引

Brodcasting:ndarray的矢量化计算

对broadcasting理解

  • 广播机制:numpy中array的一个重要操作,对不同shape的数组进行数值计算的方式,通过扩展数组的方法实现,即两个数组对应位元素之间的相加、相减以及相乘的操作(相乘操作区分于线性代数中的矩阵相乘)
  • 原则:数组维度不同,但后缘维度的轴长相符,或其中一方的长度为1。后缘长度:从末尾开始算起的维度
  • 原理:扩展数组

ndarray数组的浅拷贝与深拷贝

view:视图

数据的引用,通过改引用可访问、操作原数据。
函数:view

浅拷贝:

=运算符:赋值,为浅拷贝

深拷贝:

copy
copyto

ndarray数组的转置和轴对换

数组的转置/轴对换只会返回源数据的一个视图,不会对源数据进行修改。

函数:

transpose
swapaxes
rollaxis

ndarray数组重塑

函数:

reshape 数组重塑,返回的是视图,会影响原始矩阵
ravel:将多维数组转换为一维数组,返回的是视图,会影响原始矩阵
flatten:将多维数组转换为一维数组,返回的是拷贝
flat:将数组转换为一维的迭代器,可以用for访问数组中的每一个元素

ndarray数组的拆分和合并

函数:

concatenate:沿一条轴连接一组数组
stack:指定维度对数组进行堆叠
split:沿指定轴在指定的位置拆分数组

ndarray数组的元素重复操作

函数:

tile:以整个数组为单位的重复
repeat:以元素为单位的重复

ndarray数组的添加和移除

添加

append:将值赋加到数组的末尾
stack:按照不同轴的堆叠方式重新堆叠数组
insert:在指定轴上的对应位置插入元素

移除

delete:按指定轴删除元素,所有操作都在副本中进行

矩阵的翻转与旋转

函数:

fliplr:左右翻转。适用场景:图片左右翻转
flipud:上下翻转
roll:以指定维度滚动N个元素
rot90:矩阵旋转90°或90°的倍数

Structured Arrays:结构化数组

作用:将不同数据类型(一般有关联性)写入一个矩阵中
设置 创建ndarray数组函数中的 dtype参数

frompyfunc:函数向量化

ufunc的普通用法:通用函数的点对点操作
作用:将计算单个值的函数转化为计算数组中每个元素的函数,基于数组运算的函数,产生一个新的函数
缺点:因为这样的用法涉及大量的函数调用,因此,向量化函数的效率并不高

Finding Pattern

函数:

diff:沿指定轴计算第N位的离散差值

numpy中的随机数生成

函数:(import numpy.random)

seed:确定随机数生成器的种子
rand:产生均匀分布的样本值
randint:从给定的上下限范围内随机选取整数
randn:产生正态分布(平均值为0,标准差为1)的样本值
binomial:产生二项分布的样本值
normal:产生正态分布(高斯)的样本值
beta:产生Beta分布的样本值
chisquare:产生卡方分布的样本值
gamma:产生Gamma分布的样本值
uniform:产生在[0,1]中均匀分布的样本值

与for循环结合使用

ndarray常用的统计方法

函数:

sum:对数组中全部或某轴向的元素求和。零长度的数组sum为0
mean:算数平均数。零长度的数组mean为NaN
std、var:标准差、方差
min、max:最大值、最小值
argmin、argmax:最大、最小元素的索引
cumsum:所有元素的累计和
cumprod:所有元素的累计积

numpy中的线性代数

函数(import numpy.linalg):

diag:以一维数组的形式返回方阵的对角线(或非对角线)元素,或将一维数组转换为方阵(非对角线元素为0)
dot:矩阵乘法
trace:计算对角线元素的和
det:计算矩阵行列式
eig:计算方阵的本征值和本征向量
inv:计算方阵的逆
pinv:计算矩阵的Moore-Penrose伪逆
qr:计算QR分解
svd:计算奇异值分解(SVD)
solve:解线性方程组Ax=b,其中A为一个方阵
lstsq:计算Ax=b的最小二乘解

numpy与matplotlib结合

矩阵matrix

代码示例(思维导图)

将所有知识点的代码示例及结果 以 思维导图 方式展现
实验平台:Jupyter Notebook
百度云链接: 思维导图
提取码:16in

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值