Numpy基础

为什么要用Numpy

Numpy是由C语言编写的,对代码编译更快、Numpy数组内的数据必须统一,且保持连续的存储在内存中。在相同的计算下,Numpy的运行速度是python的25倍,这是质的飞跃。

什么时候用Numpy

实现向量化、矩阵化操作的时候优先考虑Numpy。

Numpy的安装

numpy安装非常简单,打开命令指示符输入代码

pip install numpy

既可。

Numpy数组的创建

从列表开始

设置数据类型

 二维数组

从头开始创建 

创建一个长度为5的数组,值都为零

创建一个2*4的浮点型数组,值都为1

  

 创建一个3*5的数组,值都为8.8

创建一个3*3的单位矩阵

创建一个线性序列的数组,从1开始,到15结束,步长为2

 创建一个4元素的数组,这四个数均匀的分配到0-1

创建一个10个元素的数组,形成1-10^9的等比数列

 创建一个3*3的,在0-1之间均匀分布的随机数构成的数组

创建一个3*3的,在0-1之间正态的随机数构成的数组

 

创建一个3*3的,在0-10之间随机整数构成的数组

 随机重排列

产生新的列表

 修改原列表

随机采样

生成一个10-25步长为1的数组

 随机选择其中的数据,组成4行5列的数组

 按概率采样

 p为一维数组。表示每个元素被采样的概率。如果不指定,则默认每个元素被采样的概率相等。

下面代码为每一个元素越大,他被采样的几率就越大。

 Numpy数组的性质

 数组的属性

数组的形状shape

 数组的维度

数组的大小 

 数组的大小为元素的个数。

数组的数据类型 

数组的索引

一维数组的索引

 类似于列表的索引

多维数组的索引---以二维为例

 注意:numpy数组的数据类型是固定的,向整形数组插入一个浮点值,浮点值会向下取整。

数组的切片

一维数组

跟列表相似

多维数组---以二位为例 

 前两行、前三列

获取数组的行和列

从0开始计数,取第一行

切片获取的是试图,而非副本

 

注意:视图元素发生修改,则原数据亦发生相应的修改

修改切片的安全方式:copy

 

数组的变形

n*m转a*b(reshape)

注意:reshape返回的是视图,而非副本。

 多维向量转一维向量(flatten、ravel)

flatten

 

注意:flatten返回的是一个副本 

ravel

注意:raval返回的视图 

数组的拼接

水平拼接--非视图(列拼接hstack)

 垂直拼接-非视图(行拼接vsrtack) 

 数组的分裂

split的用法

 hsplit的用法(列分裂)

vsplit的用法(行分裂) 

 Numpy四大运算

向量化运算

与数字加减乘除

绝对值

三角函数

 指数运算 

对数运算

 

 两个数组的运算

都是点对点的运算

 

 矩阵运算

矩阵转置

矩阵乘法

 dot矩阵乘法
 
点乘
 

广播运算

规则:如果两个数组的形状在维度上不相同不相匹配

          那么数组的形式会沿着维度较小的往大的进行扩展匹配数组形状

 

 比较运算和掩码

比较运算

 操作布尔数组

 sum

计算满足条件的个数

all

是否所有元素都满足这个条件

 

 any

至少一个元素满足这个条件

对行或者列判断

 将布尔数组作为掩码

 

花哨的索引

一维数组

注意:结果的形状与索引数组ind一致

 

 多维数组

其他Numpy通用的函数

数值排序

产生新的数组 (np.sort)

 

 替换原数组(sort)

获得排序索引 (argsort)

 最大值最小值

取最大值和最小值

最大值和最小值的索引

数值求和、求积 

求和

整体求和

 按行求和

 

按列求和

 求积

中位数 

 

 均值

 方差

标准差

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值