导图社区 Numpy数值计算基础
Numpy数组元素是通过数组的索引和切片来访问和修改的,因此索引和切片是Numpy中最重要、最常用的操作。
编辑于2023-03-23 20:13:48 辽宁Numpy数值计算基础
数组的基本操作
数组的数据类型
bool
用一位存储的布尔类型(值为True或False)
int8
整数,范围为−128至127
int16
整数,范围为−32768至32767
int32
整数,范围为-231至232-1
int64
整数,范围为-263,263-1
布尔型、整型、无符号型、浮点型
数组的索引与切片
Numpy数组元素是通过数组的索引和切片来访问和修改的,因此索引和切片是Numpy中最重要、最常用的操作。
1.一维数组的索引
所谓数组的索引,即用于标记数组当中对应元素的唯一数字,从0开始,即数组中的第一个元素的索引是0,以此类推。
Numpy数组可以使用标准Python语法x[obj]的语法对数组进行索引,其中x是数组,obj是索引
2.切片式索引
数组的切片可以理解为对数组的分割,按照等分或者不等分,将一个数组切割为多个片段,它与Python中列表的切片操作一样: [start : stop : step]start : 起始索引 stop : 终止索引 step : 步长
3.二维数组索引
二维数组索引可以使用参数array[n,m]的方式,以逗号分隔,表示n个数组中的第m个元素。创建一个3行4列的二维数组,实现简单的索引操作
4.二维数组切片式索引
取出二维数组蓝色区域内数值的切片操作
数组运算
1、加法运算
2、减法、乘除法运算
3、幂运算
4、比较运算
5、数组的标量运算
标量:一个单独的数向量:一组数,这组数是顺序排列的,我们理解为数组 数组的标量:向量与标量之间的运算
数组重塑
数组重塑实际是更改数组的形状,
1、一维数组重塑将一维数组重塑为二维数组
2、多维数组重塑用reshape方法将2行3列的二维数组重塑为3行2列二维数组
3、数组转置数组的T属性:将二维数组中的行变成列,列变成行
数组的增、删、改、查
1、数组的增加
2、数组的删除
delete方法 delete(arr,被删除元素的位置,被删除元素的轴)
3、数组的修改直接为数组或数组元素赋值即可
4、数组的查询使用索引和切片方法来获取指定范围的数组或数组元素 where函数查询符合条件的数组或数组元素
初识Numpy+创建数组
初识Numpy
1.从一个数据到一组数据
2.维度:一组数据的组织形式
3.一维数据一维数据由对等关系的有序或无序数据构成,采用线性方式组织
4.二维数据由多个一维数据构成,是一维数据的组合形式
5.多维数据多维数据由一维或二维数据在新维度上扩展而成
6.高维数据高维数据仅利用最基本的二元关系展示数据间的复杂结构
7.数据维度的Python表示数据维度是数据的组织形式
创建数组
创建简单的数组
如何创建数组:array函数
ndarray在程序中的一个别名:array
数组的轴(axis)和秩(rank)
数组的轴(axis)和秩(rank)
数组属性:ndarray(数组)是存储单一数据类型的多维数组
ndim
返回 int。表示数组的维数
shape
返回 tuple。表示数组的尺寸,对于 n 行 m 列的矩阵,形状为(n,m)
size
返回 int。表示数组的元素总数,等于数组形状的乘积
dtype
返回 data-type。描述数组中元素的类型
itemsize
返回 int。表示数组的每个元素的大小(以字节为单位)。
创建简单数组的函数:array shape arange linspace zeros eye diag ones full
不同方式创建数组
重新设置数组的shape属性
使用arange函数创建数组 arange([start,]stop[,step])
range函数类似于Python自带的函数range,通过指定开始值、终值和步长来创建一维数组,创建的数组不含终值。
使用linspace函数创建等差数列
linspace函数通过指定开始值、终值和元素个数来创建一维数组,默认设置包含终值。 linspace(start,stop,num)
linspace函数如果不想将终值包含进来,可以设置endpoint值为False
使用zeros函数创建数组
zeros函数用来创建值全部为0的数组,即创建的数组值全部填充为0。
使用eye函数创建数组
eye函数用来生成对角线上的元素为1,其他的元素为0的数组,类似单位矩阵
使用diag函数创建数组
diag函数创建类似对角的数组,即除对角线以外的其他元素都为0,对角线上的元素可以是0或其他值。
使用ones函数创建数组
ones函数用来创建值全部为1的数组,即创建的数组值全部填充为1。
使用full函数创建数组
full函数根据shape生成一个数组,每个元素值都是val(val:指定值)
生成随机数组
random函数是最常见的生成随机数的方法。
生成随机数 np.random.random(生成随机数的数量)
注意:random返回随机生成的一个实数,它在[0,1)范围内 每次运行程序输出的随机数组值都不一样
生成服从均匀分布的随机数 np.random.rand(shape)通过函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1) 题
均匀分布也叫矩形分布,它是对称概率分布,在相同长度间隔的分布概率是等可能的。
通过函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1)
生成给定上下范围的随机整数 np.random.randint(low,high,size)
生成随机数组的函数:random rand randint
数组的基本操作
Numpy矩阵的基本操作
Numpy统计分析函数
Numpy统计分析
读/写文件
Numpy的文件读/写主要有二进制的文件读/写和文件列表形式的数据读/写两种形式。学会读/写文件是利用Numpy进行数据处理的基础。
1、二进制数据存储save函数
2、多个数组存储savez函数
3、二进制文件读取load函数
4、文件存储savetxt函数与读取loadtxt函数
savetxt函数可将数组写到以某种分隔符隔开的文本文件中
loadtxt函数执行的是相反的操作,即把文件加载到一个二维数组中
5、genfromtxt函数读取数组
与loadtxt函数相似,genfromtxt函数面向的是结构化数组和缺失数据
算数函数
1、数组加、减、乘、除运算
数组加运算:add函数数组减运算:subtract函数 数组乘运算:multiply函数 数组除运算:divide函数
2、计算数组元素的倒数
3、数组元素的幂运算
power函数将第一个数组中的元素作为底数,计算它与第二个数组中相应元素的幂
np.power(底数,幂)
注意:0没有倒数,除了0以外的数都存在倒数
4、数组元素取余
np.mod(arr1,arr2)
舍入函数
1、四舍五入round函数返回指定小数位数的四舍五入值 np.around(a,decimals)
2、向上取整ceil函数返回大于或者等于指定表达式的最小整数,即向上取整
3、向下取整floor函数返回小于或者等于指定表达式的最大整数,即向下取整
三角函数
sin函数、cos函数和tan函数
import numpy as npn = np.array([0,30,45,60,90]) print('不同角度的正弦值:') print(np.sin(n*np.pi/180)) #通过乘pi/180转换为弧度 print('不同角度的余弦值:') print(np.cos(n*np.pi/180)) print('不同角度的正切值:') print(np.tan(n*np.pi/180))
数组的排序
1、sort函数使用sort函数排序,参数axis指定按行排序还是按列排序。 arr.sort(): 改变原始数组值 np.sort(arr): 不改变原始数组值
2、argsort函数使用argsort函数对数组进行排序,返回升序排序之后的数组值为从小到大的索引值
3、lexsort函数lexsort函数用于对多个序列进行排序。可以把它当作是对电子表格进行排序,每一列代表一个序列,排序时会优先照顾靠后的列。
4、去重数据unique函数在统计分析的工作中,难免会出现“脏”数据的情况。 重复数据就是“脏”数据的情况之一。 unique函数找出数组中的唯一值并返回已排序的结果。
统计分析函数
1、求和sum函数对数组元素求和、对数组元素按行和按列求和
2、求平均值mean函数对数组元素求平均值、对数组元素按行求平均值和按列求平均值
3、最大值max函数和最小值min函数
4、加权平均average函数在日常生活中,常用平均数表示一组数据的“平均水平” 在一组数据里,一个数据出现的次数称为权 将一组数据与出现的次数相乘再平均计算就是“加权平均”
5、中位数median函数中位数用来衡量数据取值的中等水平或一般水平,可以避免极端值的影响。 在数据处理过程中,当数据中存在少量异常值时,它不受其影响,基于这一特点,一般使用中位数来评价分析结果。
中位数:将各个变量值按大小顺序排列起来,形成一个数列,居于数列中间位置的那个数即为中位数。
6、方差、标准差函数方差:各组数据与它们的平均数的差的平方,用这个结果衡量这组数据的波动大小,方差越小越稳定 标准差:也叫均方差;是方差的平方根,用来表示数据的离散程度
Numpy矩阵
创建Numpy矩阵
1、Numpy矩阵介绍
Numpy函数库中存在两种不同的数据类型矩阵matrix 矩阵是数组的分支 数组array 二维数组也称为矩阵
2、使用mat函数创建矩阵
3、使用matrix函数创建矩阵
矩阵的运算
1、加法运算
2、减法、乘法和除法运算
3、修改矩阵并进行乘法运算
4、比较数组相乘与数组点乘
数组运算和矩阵运算的关键区别是:矩阵相乘使用的是点乘。点乘,也成点积,是数组中元素对应位置一一相乘之后求和的操作。 在Numpy中专门提供了点乘dot方法。
5、实现矩阵元素之间的相乘运算
数组相乘与数组点乘主题
矩阵转换
1、使用T属性实现矩阵转置矩阵转置与数组转置一样需要使用T属性
2、实现矩阵逆运算矩阵要可逆,否则意味着该矩阵为奇异矩阵(即矩阵的行列式的值为0) 矩阵求逆主要使用I属性