Python modules ---- numpy第三方扩展库----numpy

numpy介绍

1.由来

numpy是用python 进行科学计算,尤其是数据分析时,所有用到的一个基础库

1995年,JimHugunin开发了Numeric,这是第一次尝试用python 进行科学计算

随后又诞生了Numarray包

2006年,Trabis Oliphant发布了第一个版本Numpy库

如今,NumPy 是开源项目,使用BSD许可证

2.概述

是Python数组计算。矩阵计算和科学计算的核心库

NumPY提供了高性能的数组对象

3.优点

a)NumPY能够直接对数据和矩阵进行操作,可以省略衡多循环语句

b) NumPY众多的数学函数能简化编写代码的工作

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常用的函数

算数函数

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.]]

    sort 函数

    在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)
​

你可能感兴趣的:(numpy,python,开发语言)