numpy是用python 进行科学计算,尤其是数据分析时,所有用到的一个基础库
1995年,JimHugunin开发了Numeric,这是第一次尝试用python 进行科学计算
随后又诞生了Numarray包
2006年,Trabis Oliphant发布了第一个版本Numpy库
如今,NumPy 是开源项目,使用BSD许可证
是Python数组计算。矩阵计算和科学计算的核心库
NumPY提供了高性能的数组对象
a)NumPY能够直接对数据和矩阵进行操作,可以省略衡多循环语句
b) NumPY众多的数学函数能简化编写代码的工作
数组是同类数据元素按一定顺序排列的集合,数组中每个元素都可通过一组无符号整数进行访问,这组无符号整数称为数组的索引
当数组中每个元素都只带有一个下标时,称这样的数组为一维数组
本质是以数组作为数组元素,二维数组包括行和列,类似于表格形状,又称为矩阵的元素需要用一对值来访问,第一个值称为行索引,第二值称为列索引
是指维数为三的数组结构,也称为矩阵列表
NumPY提供的array函数可以创建一维数组或多维数组
数组的索引:即用于标记数组当中对应元素的唯一数字,从0开始语法为x[obj] 其中x是数组obj是索引
数组的切片式索引:对数组的分割,按照等分或者不等分,将一个数组切割为多个片段,NumPY中的切片用于冒号分割切片,参数来进行切片操作,语法如下:[start:stop:step]
1.start:起始索引,默认为0
2.stop:终止索引(不包含)
3.step:步长,默认值为1
姓名 年龄 KPI Marry 22 95.5 LiLi 23 56 Cendy 22 90 1)案例需求 使用array函数把员工的年龄创建为一维数组 import numpy as np#导入numpy模块 #一维数组 arr = np. array([22, 23, 22])#创建了一维数组 print('员工年龄数组:', arr)#查看数组 print('数组的维数:', arr.ndim)#查看数组维度 print('元素个数:', arr.size)#查看数组个数 2)案例需求 分别获取'Marry'和'LiLi'的年龄 #索引 arr = np.array([22, 23, 22])#员工的年龄创建为一维数组 print(arr[0])#获取“Mary”的年龄 print(arr[1])#获取“LiLi”的年龄 3)案例需求 同时获取'Marry' 和 'LiLi '的年龄 同时获取'LiLi ' 和 'Cendy'的年龄 同时获取'Marry' 和 'Cendy'的年龄 #切片索引 arr = np.array([22, 23, 22])#员工的年龄创建为一维数组 print(arr[0:2])#获取“Mary”和“LiLi”的年龄 print(arr[1:])#获取“LiLi”和“Cendy”的年龄 print(arr[0::2])#获取“Mary”和“Cendy”的年龄
姓名 年龄 KPI Marry 22 95.5 LiLi 23 56 Cendy 22 90 1)案例需求 将表格中三位员工的信息创建为二维数据 #二维数组 arr2 = np.array([["Mary", 22, 95.5], ["Cendy", 22, 90]]) print("创建二维数组:", arr2) print("数组的维数:", arr2.ndim)#查看数组的维数 print("元素个数:", arr2.size)#查看数组的元素总数
####
二维数组索引可以使用参数array[n,m]的方式,以逗号分割,表示第n 个数组中的第m个元素
姓名 年龄 KPI Marry 22 95.5 LiLi 23 56 Cendy 22 90 #案例需求 #获取'Marry'的所有信息 #获取‘LiLi的年龄 #获取'Cendy'的KPI import numpy as np#导入numpy模块 arr2 = np.array[['Marry',22,95.5],['LiLi',23,56], ['Cendy',22,90]] print(arr2[0])#获取'Marry'的所有信息 print(arr2[1][1])#获取‘LiLi的年龄 print(arr2[2][2])#获取'Cendy'的KPI
二维数组切片式索引与一维数组类似,只不过多了行切片,语法如下:
[start:stop:step,start:stop:step] #[行切片,列切片]
参数说明:
1.start:起始索引,默认为0
2.stop:终止索引(不包含)
3.step:步长,默认值为1
二维数组切片式索引
姓名 年龄 KPI Marry 22 95.5 LiLi 23 56 Cendy 22 90 1)案例需求 获取“Mary”和 “Mary”的姓名和年龄 获取“LiLi”的年龄和KPI 获取“LiLi”和“Cendy”的年龄和KPI import numpy as np#导入numpy模块 arr2 = np.array[['Marry',22,95.5],['LiLi',23,56], ['Cendy',22,90]] print(arr[:2,:0])#获取'Marry'的所有信息 print(arr[1,1:])#获取‘LiLi的年龄和KPI print(arr[1:,1:])#获取'LiLi'和'Cendy'的年龄和KPI的KPI
NumPY算数函数包括简单的加减乘除:
add( )
subtract( )
multiply( )
divide( )
import numpy as np#导入numpy模块 n1 = np.array([[1,2,3],[4,5,6],[7,8,9]])#二维数组 n2 = np.array([1,2,3])#一维数组 print('两个数组相加:\n'np.add(n1,n2))#加法运算 结果[[2 4 6][5 7 9]][8 10 12]] print('两个数组相减:\n'np.subtract(n1,n2))#减法运算 结果[[0 0 0][3 3 3 ]][6 6 6 ]] print('两个数组相乘:\n'np.multiply(n1,n2))#乘法运算 结果[[1 4 9 ][4 10 18]][7 16 27]] print('两个数组相除:\n'np.divide(n1,n2))#除法运算 结果[[1. 1. 1.][4 2.5 2.]][7. 4. 3.]]
在NumPY函数中,使用sort 函数对数组元素进行排序,直接改变数组
姓名 年龄 KPI Marry 22 95.5 LiLi 23 56 Cendy 22 90 1)案例需求 使用sort函数按照员工的KPI(绩效),进行排序,数据如下 import numpy as np#导入numpy模块 b = np.dtype([('name','S20'),('age''i1'),(kpi,'f4')])#创建结构化数据类型 #将数据类型应用于ndarray对象 a = np.array[['Marry',22,95.5],['LiLi',23,56], ['Cendy',22,90],dtype=b] print('自定义数组:',a ) s = np.sort (a,order='kpi')#按kpi排序 print('按kpi排序:'s )
unique函数
unique函数可以返回输入数组中所有不同的值(即去重后的值),并且按照从小到大的顺序排列
import numpy as np#导入numpy模块 arr = np.array([4,7,,6,1,8,9,1,6])#创建一维数组 arr_u = np.unique(arr)#对数组元素去重 print('去重后的数据:',arr_u)