文章目录
- 前言
- 一、numpy简介
- 二、numpy数组的基本操作
- 1.创建ndarry对象
- 2.创建指定大小的数组
- 3.生成等差数组
- 三、数组的属性
- 1.shape属性
- 2.数组维度
- 3.数组的内存信息
- 四、数组切片操作
- 五、高级索引
- 1.整数索引
- 2.布尔索引
前言
- 通过今天的学习,我掌握了Python中的第三方库——numpy的部分语法知识
一、numpy简介
- numpy 的全称是“ Numeric Python”,它是 Python 的第三方扩展包,主要用来计算、处理一维或多维数组
- 在数组算术计算方面, numpy 提供了大量的数学函数
- 数组是numpy的基本数据类型,与Python中的列表有相似之处
- 二者的区别在于:数组是同质数据类型而列表是异质数据类型,也就是说二者对存储元素的数据类型的要求不同。同时,数组用方括号表示但其中的元素使用空格而不是逗号隔开
- numpy是Python的第三方库,使用时需要导包
二、numpy数组的基本操作
1.创建ndarry对象
- 语法:
numpy.array(object,dtype=None,copy=True,order=None,ndim=0)
arr = np.array([1,2,3],dtype=float,order="c",ndmin=1)
print(arr) #[1. 2. 3.]
- 这里传入了一个列表对象,dtype指定元素类型,order表示以哪种内存布局创建数组,ndmin指定数组的维度
2.创建指定大小的数组
- 1.zeros方法:
np.zeros(shape,dtype,order) - 生成指定大小的全0数组
arr = np.zeros((2,3),dtype=int,order="c")
print(arr)
- 2.ones方法:
np.ones(shape,dtype,order) - 生成指定大小的全1数组
arr = np.ones((2,3),dtype=int,order="c")
print(arr)
- 3.full方法:
np.full(shape,value,dtype,order) - 生成指定大小,指定元素的数组
arr = np.full((2,3),3,dtype=float,order="c")
print(arr)
3.生成等差数组
- 1.arange方法:
np.arange(start,stop,step,dtype) - 用于生成等差数组,类似于Python中的range函数,但返回的是一个数组而非列表
arr = np.arange(10)
print(arr)
- 2.linspace方法:
np.linspace(start,stop,num,endpoint,retstep,dtype) - 同样用于生成等差数组,num用于指定均分数,endpoint代表是否包含终止值,retstep可以返回包含数值和步长的元组
arr = np.linspace(0,49,50)
print(arr)
三、数组的属性
1.shape属性
- shape属性反映数组在对应维度的大小
arr1 = np.array([1,2])
print(arr1.shape) #(2,)arr2 = np.array([1,2],ndmin=2)
print(arr2.shape) #(1, 2)
tips:arr1是一个一维数组,arr2是一个二维数组
2.数组维度
- ndmin表示数组的维度,shape返回的元组中的每个元素便是代表在当前维度中包含的元素个数
- 也可以使用ndmin指定数组的维度
arr2 = np.array([1,2],ndmin=2)
print(arr2.shape) #(1, 2)
3.数组的内存信息
- flags属性代表数组的内存信息
- 主要了解前两个参数的含义,即数组在内存中的存储方式
四、数组切片操作
- 数组的切片与列表的切片操作相似,使用:变量名[start,stop,step]即可
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr[:,2]) #[3 6] 取所有行的第三列
print(arr[1,:]) #[4 5 6] 取第二行的所有列
五、高级索引
1.整数索引
- 将目标元素的索引合成为索引列表传入,可以取出任意元素
arr = np.array([[1,2,3], [4,5,6],[7,8,9]])
arr1 = arr[[0,1,2],[1,1,0]]
print(arr1) #[2 5 7]
2.布尔索引
- 通过布尔运算获取包含符合条件元素的数组
arr = np.array([[1,2,3], [4,5,6],[7,8,9]])
idx = arr > 5
print(idx) #返回布尔数组
print(arr[idx]) #返回满足条件元素构成的数组
print(arr[:,arr[1]<7]) #切片布尔索引
THE END