1、NumPy 数值计算基础1掌握 NumPy 矩阵与通用函数利用 NumPy 进行统计分析目录掌握 NumPy 数组对象 ndarray23 属性说明ndim返回 int。表示数组的维数shape返回 tuple。表示数组的尺寸,对于 n 行 m 列的矩阵,形状为(n,m)size返回 int。表示数组的元素总数,等于数组形状的乘积dtype返回 data-type。描述数组中元素的类型itemsize返回 int。表示数组的每个元素的大小(以字节为单位)。创建数组对象创建数组对象1数组属性:ndarray(数组)是存储单一数据类型的多维数组。参数名称说明object接收array。表示想要创建
2、的数组。无默认。dtype接收data-type。表示数组所需的数据类型。如果未给定,则选择保存对象所需的最小类型。默认为None。ndmin接收int。指定生成数组应该具有的最小维数。默认为None。创建数组对象创建数组对象2数组创建numpy.array(object, dtype=None, copy=True, order=K,subok=False, ndmin=0)In1:import numpy as np #导入NumPy库arr1 = np.array(1, 2, 3, 4) #创建一维数组print(创建的数组为:,arr1)Out1:创建的数组为: 1 2 3 4In2:
3、arr2 = np.array(1, 2, 3, 4,4, 5, 6, 7, 7, 8, 9, 10) #创建二维数组print(创建的数组为:n,arr2)Out2:创建的数组为: 1 2 3 4 4 5 6 7 7 8 9 10In3:print(数组维度为:,arr2.shape) #查看数组结构Out3:数组维度为: (3, 4)创建数组对象创建数组对象 创建数组并查看数组属性In4:print(数组维度为:,arr2.dtype) #查看数组类型Out4:数组维度为: int32In5:print(数组元素个数为:,arr2.size) #查看数组元素个数Out5:数组元素个数为:
4、12In6:print(数组每个元素大小为:,arr2.itemsize) #查看数组每个元素大小Out6:数组每个元素大小为: 4创建数组对象创建数组对象 重新设置数组的 shape 属性In7:arr2.shape = 4,3 #重新设置 shapeprint(重新设置 shape 后的 arr2 为:,arr2)Out7:重新设置shape维度后的arr2为: 1 2 3 4 4 5 6 7 7 8 9 10 使用 arange 函数创建数组In8:p r i n t ( 使 用 a r a n g e 函 数 创 建 的 数 组 为 :n,np.arange(0,1,0.1)Out8:
5、使用arange函数创建的数组为: 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9创建数组对象创建数组对象 使用 linspace 函数创建数组In9:print(使用 linspace 函数创建的数组为:,np.linspace(0, 1, 12)Out9:使用linspace函数创建的数组为: 0. 0.09090909 1. 使用 logspace 函数创建等比数列In10:print(使用logspace函数创建的数组为:,np.logspace(0, 2, 20)Out10:使用logspace函数创建的数组为: 1. 1.27427499 1.6237
6、7674 ., 61.58482111 78.47599704 100. 创建数组对象创建数组对象 使用zeros函数创建数组In11:print(使用zeros函数创建的数组为:,np.zeros(2,3)Out11:使用zeros函数创建的数组为: 0. 0. 0. 0. 0. 0. 使用eye函数创建数组In12:print(使用eye函数创建的数组为:,np.eye(3)Out12:使用eye函数创建的数组为: 1. 0. 0. 0. 1. 0. 0. 0. 1.创建数组对象创建数组对象 使用diag函数创建数组In13:print(使用diag函数创建的数组为:,np.diag(1,
7、2,3,4)Out13:使用diag函数创建的数组为: 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 4 使用ones函数创建数组In14:print(使用ones函数创建的数组为:,np.ones(5,3)Out14:使用ones函数创建的数组为: 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.NumPy基本数据类型与其取值范围(只展示一部分)创建数组对象创建数组对象3数组数据类型类型描述bool用一位存储的布尔类型(值为TRUE或FALSE)inti由所在平台决定其精度的整数(一般为int32或int64)int8整数,范围为128至
8、127int16整数,范围为32768至32767int32创建数组对象创建数组对象数组数据类型转换In15:print(转换结果为:,np.float64(42) #整型转换为浮点型Out15:转换结果为: 42.0In16:print(转换结果为:,np.int8(42.0) #浮点型转换为整型Out16:转换结果为: 42In17:print(转换结果为:,np.bool(42) #整型转换为布尔型Out17:转换结果为: TrueIn18:print(转换结果为:,np.bool(0) #整型转换为布尔型O u t 18:转换结果为: FalseIn19:print(转换结果为:,np
9、.float(True) #布尔型转换为浮点型O u t 19:转换结果为: 1.0In20:print(转换结果为:,np.float(False) #布尔型转换为浮点型O u t 20:转换结果为: 0.0创建数组对象创建数组对象创建一个存储餐饮企业库存信息的数据类型。其中,用一个长度为40个字符的字符串来记录商品的名称,用一个64位的整数来记录商品的库存数量,最后用一个64位的单精度浮点数来记录商品的价格,具体步骤如下。In21:df = np.dtype(name, np.str_, 40), (numitems, np.int64), (price,np.float64)print(
10、数据类型为:,df)Out21:数据类型为: (name, U40), (numitems, i8), (price, f8) 创建数据类型创建数组对象创建数组对象 查看数据类型,可以直接查看或者使用numpy.dtype函数查看。In22:print(数据类型为:,dfname)Out22:数据类型为: U40In23:print(数据类型为:,np.dtype(dfname)Out23:数据类型为: 、=、=、!=。比较运算返回的结果是一个布尔数组,每个元素为每个数组对应元素的比较结果。逻辑运算:np.any函数表示逻辑“or”,np.all函数表示逻辑“and”。运算结果返回布尔值。认识
11、ufunc函数全称通用函数(universal function),是一种能够对数组中所有元素进行操作的函数。广播(broadcasting)是指不同形状的数组之间执行算术运算的方式。需要遵循4个原则。 让所有输入数组都向其中shape最长的数组看齐,shape中不足的部分都通过在前面加1补齐。 输出数组的shape是输入数组shape的各个轴上的最大值。 如果输入数组的某个轴和输出数组的对应轴的长度相同或者其长度为1时,这个数组能够用来计算,否则出错。 当输入数组的某个轴的长度为1时,沿着此轴运算时都用此轴上的第一组值。认识ufunc函数ufunc函数的广播机制函数的广播机制认识ufunc函
12、数ufunc函数的广播机制函数的广播机制认识ufunc函数ufunc函数的广播机制函数的广播机制1掌握 NumPy 矩阵与通用函数利用 NumPy 进行统计分析目录掌握 NumPy 数组对象 ndarray23save函数是以二进制的格式保存数据。 np.save(./tmp/save_arr,arr)load函数是从二进制的文件中读取数据。 np.load(./tmp/save_arr.npy) savez函数可以将多个数组保存到一个文件中。 np.savez(./tmp/savez_arr,arr1,arr2)存储时可以省略扩展名,但读取时不能省略扩展名。读写文件NumPy文件读写主要有二
13、进制的文件读写和文件列表形式的数据读写两种形式 savetxt函数是将数组写到某种分隔符隔开的文本文件中。 np.savetxt(./tmp/arr.txt, arr, fmt=%d, delimiter=,) loadtxt函数执行的是把文件加载到一个二维数组中。 np.loadtxt(./tmp/arr.txt,delimiter=,) genfromtxt函数面向的是结构化数组和缺失数据。 np.genfromtxt(./tmp/arr.txt, delimiter = ,)读写文件读取文本格式的数据sort函数是最常用的排序方法。 arr.sort()sort函数也可以指定一个axis
14、参数,使得sort函数可以沿着指定轴对数据集进行排序。axis=1为沿横轴排序; axis=0为沿纵轴排序。使用数组进行简单统计分析直接排序argsort函数返回值为重新排序值的下标。 arr.argsort()lexsort函数返回值是按照最后一个传入数据排序的。 np.lexsort(a,b,c)使用数组进行简单统计分析间接排序 通过unique函数可以找出数组中的唯一值并返回已排序的结果。 tile函数主要有两个参数,参数“A”指定重复的数组,参数“reps”指定重复的次数。 np.tile(A,reps) repeat函数主要有三个参数,参数“a”是需要重复的数组元素,参数“repea
15、ts”是重复次数,参数“axis”指定沿着哪个轴进行重复,axis = 0表示按行进行元素重复;axis = 1表示按列进行元素重复。 numpy.repeat(a, repeats, axis=None) 这两个函数的主要区别在于,tile函数是对数组进行重复操作,repeat函数是对数组中的每个元素进行重复操作。使用数组进行简单统计分析去重与重复数据函数说明sum计算数组的和mean计算数组均值std计算数组标准差var计算数组方差min计算数组最小值max计算数组最大值argmin返回数组最小元素的索引argmax返回数组最小元素的索引cumsum计算所有元素的累计和cumprod计算所有元素的累计积常用的统计函数当axis=0时,表示沿着纵轴计算。当axis=1时,表示沿着横轴计算。默认时计算一个总值。读取iris数据集中的花萼长度数据(已保存为csv格式),并对其进行排序、去重,并求出和、累积和、均值、标准差、方差、最小值、最大值任务实现