Numpy数值计算基础

目录

 一,Numpy的概念

二,数组

1,数组的属性

2,数组的创建

2.1 array函数

2.2 arrange函数

2.3 linspace函数

2.4 logspace函数

2.5 zeros函数

2.6 ones函数

 2.7 eye函数

2.8 diag函数

3,数组数据类型的转换

3.1,np.数据类型(数据对象)

​ 3.2,数据对象.astype(np.数据类型)

​4,数组的处理

 4.1,数组的索引和切片

4.2,修改数组形状

4.3,数组的展平与连接

4.4,数组元素的处理

4.5,数组的运算

5,随机数模块

5.1,random函数:生成[0,1)内的随机数

5.2,rand函数:生成服从均匀分布的[0,1)内的随机数

5.3,randn函数:生成服从正态分布的随机数

5.4,randint函数:生成给定上下限范围的随机数

5.5,choice函数:从一个列表或者数组中随机进行采样

5.6,random模块的常用随机数生成函数

三,矩阵

1,创建矩阵

2,矩阵的矢量积

3,矩阵的数量积

四,读写文件

1,save函数是以二进制的格式保存一个数组数据

2,savez函数可以将多个数组保存到一个文件

3,load函数是从二进制的文件中读取数据

4,savetxt()函数将数组写到某种分隔符隔开的文本文件中。

5,loadtxt()函数把文件加载到一个二维数组中。

五,numpy中的统计分析

1,sort()直接排序

2,间接排序

3,重复和去重


 一,Numpy的概念

Numpy是用于数据科学计算的基础模块,不但能够完成科学计算的任务,而且能够被用作高效的多维数据容器,可用于存储和处理大型矩阵,Numpy的数据容器能够保存任意类型的数据,这使得Numpy可以快速地整合各种数据。

二,数组

1,数组的属性

属性 说明
ndim 返回int,表示数组的维数
shape 返回tuple。表示数组的尺寸,对于n行m列的矩阵,形状为(n,m)
size 返回int,表示数组元素总数,等于数组形状的乘积
dtype 返回data-type,描述数组中元素的类型
itemsize 返回int,表示数组的每个元素的大小(以字节为单位)

2,数组的创建

2.1 array函数

用于创建一维或多维数组。np.array(object,dtype,ndim)

参数名称 说明
object 用于接收数组,表示想要创建的数组,无默认
dtype 接收data-type,表示数组所需的数据类型,默认为None
ndim

接收int。指定生成数组应该具有的最小维数,默认为None

# np.array生成一维数组
arr1=np.array([1,2,3,4])
# np.array生成二维数组
arr2=np.array([[1,2,3,4],[4,5,6,7]])

2.2 arrange函数

类似于Python自带的函数range,通过指定开始值、终值和步长来创建一维等差数组。创建的数组不含终值。步长默认为1.

# np.arrange创建数组
arr=np.arange(1,10)

2.3 linspace函数

通过指定开始值、终值和元素个数来创建一维等差数组。创建的数组包含终值。

# 通过np.linspace创建开始值为1,终值为10,个数为5的一维等差数组。
arr=np.linspace(1,10,5)

2.4 logspace函数

与linspace函数类似,但它创建的是等比数列

# 通过np.logspace创建开始值为1,终值为10,个数为5的一维等比数组。
arr=np.logspace(1,10,5)

2.5 zeros函数

创建指定长度或形状的的全零数组

 # 创建长度为2的一维全零数组
arr=np.zeros(2)
# 创建三行四列的全零数组
arr=np.zeros((3,4))

2.6 ones函数

创建指定长度或形状的的全一数组

# 创建长度为2的一维全1数组
arr=np.ones(2)
# 创建三行四列的全1数组
arr=np.ones((3,4))

 2.7 eye函数

用于创建生成主对角线上的元素为1,其他元素为0的数组。类似单位矩阵

# 创建四行四列的主对角线上的元素为1,其他元素为0的数组
arr=np.eye(4)

2.8 diag函数

创建对角矩阵,即除对角线外的其他元素都为0.

# 创建对角元素分别为1和3,其他元素为0的对角矩阵。
arr=np.diag([1,3])

3,数组数据类型的转换

3.1,np.数据类型(数据对象)

创建数组并查看其数据类型

arr3=np.arange(1,10)
arr3.dtype

通过 np.数据类型(数据对象)的方式改变其数据类型。

arr3=np.int64(arr3)

 代码运行截图如下:

Numpy数值计算基础_第1张图片 3.2,数据对象.astype(np.数据类型)

arr3.astype(np.int32)

代码运行截图如下:

Numpy数值计算基础_第2张图片4,数组的处理

 4.1,数组的索引和切片

4.1.1 一维数组索引:数组名[m:n],其中m,n为数组元素下标

arr=np.arange(1,10)
arr[0:2]

运行结果如下 :

Numpy数值计算基础_第3张图片 4.1.2 一维数组切片:数组名[start,end,step],(半开区间)

arr[0:3:1]

运行结果如下 :

Numpy数值计算基础_第4张图片 4.1.3 二维数组切片:数组名[行索引,列索引],半开区间

创建二维数组,截取行索引等于0后面的所有的行和第一列后面所有的列组成的数组。

arr=np.array([[1,2,3,4],[4,5,6,7]])
arr[0:,1:]

运行结果如下:

Numpy数值计算基础_第5张图片

 4.1.4 整数索引:从两个序列的对应位置取出两个整数来组成行下标和列下标。

4.1.5 布尔值索引:当结果对象是布尔运算(例如比较运算符)的结果时,使用布尔值索引

4.2,修改数组形状

4.2.1,数组名.reshape=(行,列)。不改变原数组形状

#创建一个数组
arr=np.arange(12)
arr.reshape(3,4)

4.2.2,数组名.resize=(行,列)。不改变原数组形状,返回指定大小的新数组。

arr.resize(4,3)

4.2.3 设置维度f修改数组的形状方法:

arr.shape=(3,4)

结果如下所示:

Numpy数值计算基础_第6张图片

4.3,数组的展平与连接

4.3.1 ravel()函数:可以将多维数组展平变为一维数组,原arr不变。按行展平

#ravel()函数用于按行展平
arr3=arr1.ravel()

运行结果如下:

Numpy数值计算基础_第7张图片 4.3.2 flatten()函数:可以将多维数组展平变为一维数组,并且可以选择按行或者按列展平

#flatten()函数默认按行展平
arr3=arr1.flatten()
#"F"表示按列展平
arr3=arr1.flatten("F")

运行结果如下:

Numpy数值计算基础_第8张图片

4.3.3 hstack()函数,左右拼接

np.hstack((arr1,arr2))

运行结果如 

Numpy数值计算基础_第9张图片

 4.3.4 vstack()函数:上下拼接

np.vstack((arr1,arr2))

运行结果如下: 

Numpy数值计算基础_第10张图片

 4.3.5 concatenate()函数:用于沿指定轴连接相同形状的两个或多个数组。

#axis = 1左右拼接
np.concatenate((arr1,arr2),axis = 1)

#axis = 0上下拼接
np.concatenate((arr1,arr2),axis = 0)

运行结果如下: 

Numpy数值计算基础_第11张图片

 4.3.6 spilt()函数:沿特定的轴将数组分割为子数组

#axis = 1 分割列
np.split(arr1,3,axis=0)

#axis = 0 分割行
np.split(arr1,3,axis=1)

运行结果如下: 

Numpy数值计算基础_第12张图片

4.3.7 transpose()函数:实现数组的转置,原arr不变

#方法一
np.transpose(arr1)


#方法二
arr1.T

运行结果如下: 

Numpy数值计算基础_第13张图片

4.4,数组元素的处理

4.4.1  append()函数:是在数组末尾添加函数

#按行添加
np.append(arr,[[0, 0, 0]],axis=0)

#按列添加
np.append(arr,[[0],[0], [0]],axis=1)

运行结果如下: 

Numpy数值计算基础_第14张图片

4.4.2 insert()函数:在给定索引前,沿给定轴在输入数组中插入元素

#按行
np.insert(arr,3,[[0,0,0],[1,1,1],[2,2,2]],axis=0)


#按列
np.insert(arr,3,[[0,0,0],[1,1,1],[2,2,2]],axis=1)

结果如下: 

Numpy数值计算基础_第15张图片

4.4.3 delete()函数:返回从输入数组中删除指定子数组的新数组

#删除第二行
np.delete(arr,1,axis=0)

#用切片表示元素范围
np.delete(arr,np.s_[1,1,1])

运行结果如下:

Numpy数值计算基础_第16张图片

4.5,数组的运算

相同形状的数组按元素级进行逐个元素运算,而不同形状的数组,则按广播机制进行计算

5,随机数模块

5.1,random函数:生成[0,1)内的随机数

5.2,rand函数:生成服从均匀分布的[0,1)内的随机数

Numpy数值计算基础_第17张图片  

5.3,randn函数:生成服从正态分布的随机数

Numpy数值计算基础_第18张图片  

5.4,randint函数:生成给定上下限范围的随机数

Numpy数值计算基础_第19张图片

5.5,choice函数:从一个列表或者数组中随机进行采样

Numpy数值计算基础_第20张图片

5.6,random模块的常用随机数生成函数

函数名 用途
seed 确定随机种子
permutation 返回一个序列的随机排序
shuffle 对一个序列进行随机排序(改变原序列)

三,矩阵

1,创建矩阵

Numpy数值计算基础_第21张图片

2,矩阵的矢量积

运算符采用*,且*左边矩阵的列数要与其右边的行数相等,运算结果是矩阵中对应元素相乘的累加和

Numpy数值计算基础_第22张图片

3,矩阵的数量积

也称为矩阵的点乘操作,即各元素相乘

Numpy数值计算基础_第23张图片

四,读写文件

1,save函数是以二进制的格式保存一个数组数据

在桌面新建一个名为save的文件夹。

#np.save("路径\\结果文件名",arr名)
np.save("C:\\Users\\Yan\\Desktop\\save\\save_arr1",arr)

结果如下:

 Numpy数值计算基础_第24张图片

2,savez函数可以将多个数组保存到一个文件

np.savez("C:\\Users\\Yan\\Desktop\\save\\save_arr2",arr1,arr2)

 结果如下:

Numpy数值计算基础_第25张图片

3,load函数是从二进制的文件中读取数据

     存储时可以省略扩展名,但读取时不能省略。

np.load("C:\\Users\\Yan\\Desktop\\save\\save_arr1.npy")

 结果如下:

Numpy数值计算基础_第26张图片

4,savetxt()函数将数组写到某种分隔符隔开的文本文件中。

np.savetxt("C:\\Users\\Yan\\Desktop\\save\\save_arr3.txt",arr,fmt="%d",delimiter="。。")

Numpy数值计算基础_第27张图片

5,loadtxt()函数把文件加载到一个二维数组中。

np.loadtxt("C:\\Users\\Yan\\Desktop\\save\\save_arr3.txt",delimiter="。。")
#delimiter中是txt存储时的分割方式

  结果如下:

五,numpy中的统计分析

1,sort()直接排序

Numpy数值计算基础_第28张图片

2,间接排序

argsort():返回沿轴按升序排序的值的下标

np.argsort(arr1)

lexsort():用于对多个序列进行排序。返回排序的值的下标

np.lexsort((arr,arr1))

3,重复和去重

去重:

unique函数可以找出数组中的唯一值,并返回按升序排序的结果

Numpy数值计算基础_第29张图片

重复:

tile() 重复整个数组

np.tile(arr,2)
# 2表示重复次数

repeat():重复元素,可指定按行重复或者按列重复

Numpy数值计算基础_第30张图片

你可能感兴趣的:(Python,python,numpy)