《大数据分析技术应用》课件-项目七 电商用户消费数据分析项目_第1页
《大数据分析技术应用》课件-项目七 电商用户消费数据分析项目_第2页
《大数据分析技术应用》课件-项目七 电商用户消费数据分析项目_第3页
《大数据分析技术应用》课件-项目七 电商用户消费数据分析项目_第4页
《大数据分析技术应用》课件-项目七 电商用户消费数据分析项目_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目背景|项目概述|学习目标|任务实施步骤电商用户1.消费数据分析【大数据分析技术应用】01101111011010111101010000101101010100111101背景先导项目概述项目学习目标任务实施步骤01Background02BriefIntroduction03LearningObjectives04ImplementationSteps主要内容用户数据分析在数字化的浪潮中,电子商务已成为推动经济增长的重要引擎,而数据分析则是驱动这一引擎的核心燃料。大规模用户的数据蕴含着巨大的价值。‌用户数据分析‌是一种基于数据和行为模式的研究方法,旨在深入了解用户的需求、偏好以及使用习惯,从而提供更好的产品和服务。随着互联网技术的不断发展,用户分析已经成为企业成功的关键因素之一。用户数据用户属性:年龄、性别、地域、职业等用户行为:浏览、搜索、购买、评论等用户活跃度:访问频率、停留时长等用户偏好:购买品类、价格敏感度等用户数据分析项目总体要求

电商用户数据分析利用NumPy等数据分析工具,对电商平台的用户数据进行深入分析,挖掘用户行为的潜在规律和趋势,为企业的战略决策提供有力支持。根据数据分析需求,完成用户数据的导入、更新和分析。项目三维目标掌握NumPy的ndarray对象属性及创建方法;

(Python程序开发职业技能等级标准高级1.1.4)了解NumPy中的矩阵创建、矩阵运算及广播机制;(Python程序开发职业技能等级标准高级1.2.1)了解NumPy中的常用函数。(Python程序开发职业技能等级标准高级1.2.1)知识目标能力目标素质目标证证证项目三维目标会使用NumPy进行数组操作和数据处理;(Python程序开发职业技能等级标准高级1.2.1)会使用NumPy进行多维数组计算和矩阵运算;会使用NumPy进行科学计算和统计分析。知识目标能力目标素质目标证011011110110101111010111100100001011010101001111101项目三维目标认识到数据分析在推动社会可持续发展中的作用,增强学生社会责任感和使命感;认识到在数据分析过程中遵守数据伦理的重要性,增强数据安全意识,遵守相关的数据保护法规,做到知法守法;会独立思考、发现问题、解决问题,具备批判性思维和创新意识。能力目标素质目标知识目标011011110110101111010111100100001011010101001111101电商用户数据分析流程明确目标,分析电商平台用户的年龄、爱好、性格等信息,洞察用户画像。明确目标数据分析数据更新数据创建电商用户数据分析流程利用NumPy创建数组,建立用户档案,为后续的数据分析和精准营销打下基础。数据创建明确目标数据分析数据更新电商用户数据分析流程通过数组操作函数更新用户数据,完善用户画像数据创建数据更新明确目标数据分析电商用户数据分析流程数据创建数据更新数据分析明确目标利用基本函数进行用户年龄的平均值、标准差等数据的分析还在等什么?马上动手实施电商用户消费数据分析项目吧~1.用户数据2.电商用户数据分析流程小结011011110110101111010111100100001011010101001001111012.NumPy数组创建知识目标01121110110101101101001001100110101010010011011010010110010111011010100110111010101010101101010011010010了解数组索引与切片了解NumPy数组创建方法了解NumPy数组数据类型NumPy是什么NumPy(NumericalPython)是科学计算基础库,提供大量科学计算相关功能,比如数据统计、随机数生成等等。其提供的最核心类型是多维数组类型(ndarray),它能够支持大量的维度数组与矩阵运算。Numpy提供了高效的数组操作,可以快速处理大规模数据,提高数据处理效率。高效处理数据01Numpy支持多种数据类型,包括整数、浮点数、字符串等,可以满足不同数据处理需求。支持多种数据类型02Numpy提供了丰富的数学函数,可以进行线性代数、统计分析等数学运算,方便进行数据处理和分析。方便进行数学运算03NumPy提供了两种基本对象:ndarray(N-dimensionalArrayObject)和ufunc(UniversalFunctionObject)。其中ndarray是一个多维数组对象,而ufunc则是能够对数组进行处理的函数。NumPy数组一般是同质的(但特殊的数组类型可以是异质的),即数组中所有元素的数据类型必须一致。NumPy数组的下标也是从0开始的。数组元素的数据类型用数据类型对象表示,数据类型对象是numpy.dtype类的实例。创建数组对象利用NumPy提供的array()函数可以创建一维或多维数组,其基本语法格式如下。其中:

object:表示想要创建数组,无默认。

dtype:表示数组的所需要的数据类型,默认为None。

ndmin:指定生成数组应该具有的最小维数,默认为None。在创建数组时,object是唯一必要的参数,其余参数均为默认的可选参数。

numpy.array(object,dtype=None,copy=True,order=None,subok=False,ndmin=0)创建数组对象数组属性使用arange()函数创建一维数组根据start与stop指定的范围以及step设定的步长,生成一个ndarray。使用linspace()函数创建等差数组使用logspace()函数创建等比数列numpy.arange(start,stop,step,dtype)np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)np.logspace(start,stop,num=50,endpoint=True,base=10.0,dtype=None)创建数组的其他方法使用zeros()、eye()、identity()、diag()和ones()函数创建特殊数组使用asarray()函数创建数组,类似numpy.array6.使用empty()函数创建数组,生成的数组元素为随机值,因为它们未初始化numpy.empty(shape,dtype=float,order='C')numpy.asarray(a,dtype=None,order=None)创建数组的其他方法np.zeros(3)0.0.0.np.ones(3)1.1.1.np.eye(3)0.1.0.1.0.0.0.0.1.np.

diag([1,2,3])

020100003NumPy数组数据类型Python支持的数据类型有整型、浮点型以及复数型,但这些类型不足以满足科学计算的需求,因此NumPy添加了很多其他的数据类型。在实际应用中,为了提高计算结果的准确度,需要使用不同精度的数据类型,并且不同的数据类型所占用的内存空间也是不同的。在NumPy中,大部分数据类型名是以数字结尾的,这个数字表示其在内存中占用的位数。NumPy数组数据类型数组的数据类型转换数组有一个dtype

属性,通过该属性可以查看数组的数据类型,方法是数组名.dtype。而数组的数据类型在创建数组时就已经通过dtype

参数确定了。

如果想实现数组中数值类型的转换可采用astype()函数。astype()函数的格式如下。数组名.astype(numpy.数据类型)NumPy数组数据类型自定义数据类型是一种异构数据类型,可以将它看作是电子表格的标题行的数据。例如,创建一个存储产品价格信息的数据类型。其中,产品名称是用字符串表示的长度为50个字符,产品价格是用32位单精度浮点数表示。那么,使用自定义数据类型来创建数组的方法如下。(1)使用dtype创建自定义数据类型(2)查看数据类型,可直接查看或使用numpy.dtype()函数查看(3)使用array()函数创建数组时,使用dtype指定数组的数据类型为pro_type(自定义数据类型)数组的索引和切片1.一维数组的索引与切片一维数组的操作类似于Python中列表(list)类型的操作。如:一维数组arr=[a0,a1,a2,a3,a4……,an]

数组索引(下标)01234na=np.arange(1,6)1234501234数组的索引和切片(1)利用数组索引(下标)获取指定元素获取数组中指定元素的方法如下。数组名[索引(下标)]

例如,获取数组arr中第4个元素a3用arr[3]即可。(2)数组的切片

截取数组中某个范围之间元素的方法如下。

数组名[start:end:step]

其中,start表示截取数组中开始元素的索引(下标),end表示截取数组中结束元素的索引(下标),但是不包括end索引(下标)所指定的元素,step表示步长。

例如,截取arr数组中第2个元素至第5个元素,包括第5个元素,则使用arr[1:5]。数组的索引和切片2.二维数组的索引与切片二维数组是由行和列组成,二维数组中的每一行相当于一维数组。二维数组中元素的索引是由该元素所在的行下标和列下标组成,即由元素的行索引和列索引组成。如arr是二维数组,该二维数组元素用arr[行索引,列索引]表示,该二维数组中元素与索引的对应关系如下。数组的索引和切片(1)利用二维数组的行索引和列索引获取指定元素数组名[行索引,列索引]

例如,获取二维数组中第2行第2列的元素,用arr[1,1]即可。(2)二维数组的切片截取二维数组中某个区域之间元素的方法:数组名[rows_start:rows_end:rows_step,cols_start:cols_end:cols_step]

rows_start:rows_end

表示截取数组中元素的行索引范围,

cols_start:cols_end

表示截取数组中元素的列索引范围,但不包括rows_end行索引和cols_end列索引所指定的元素,

rows_step表示行索引的步长,cols_step表示列索引的步长。数组的索引和切片123456789101112123456789101112123456789101112123456789101112123456789101112a[1,2]a[:,1:3]a[1,:]a[-2:,-2:]a数组的索引和切片3.整数索引整数索引就是从两个序列的对应位置取出两个整数来组成行下标和列下标。4.布尔值索引当结果对象是布尔运算(例如比较运算符)的结果时,将使用布尔值索引。1234567654321falsefalsefalsefalsefalsetruetruetruefalsefalsefalsefalsefalseaa>5不急后续会有操作应用实例哦~NumPy数组创建方法NumPy数组数据类型数组索引与切片小结3.用户数据创建任务实施电商用户消费数据分析会熟练使用Python集成开发工具,如PyCharm、Anaconda等;会安装NumPy第三方包;会使用NumPy函数创建数组。能力目标用户数据创建任务工单引导问题任务解决方案任务评价标准主要内容教学难点任务工单任务概述

任务描述:利用NumPy录入用户的编号、年龄、性别、职业数据010010011001101010100100110110100101110101000100001011011101001010101101010011010010利用NymPy创建结构化数组,录入用户的编号、年龄、性别和职业等数据。(1)录入的用户属性数据包括哪些数据类型?(2)如何利用NumPy中的函数创建数组?(3)自定义数据类型应该如何设置?”

问题引导:任务概述

任务评价:评价内容评价要点分值分数评定自我评价1.任务实施NumPy包的安装与导入3分NumPy正确安装得1分,包正常导入得1分,会使用别名得1分

创建数据2分会利用NumPy创建数据,录入用户数据

数据类型设置2分能正确设置用户数据类型

2.结果展现数据筛选2分能正确筛选数据并展示得2分

3.任务总结依据任务实施情况总结结论1分总结内容切中本任务的重点要点得1分

合计10分

任务评价第1行:本文件用utf-8编码,utf-8编码支持多种文字,包括中文。第2行:导入NumPy库,并给出别名np。#coding:utf-8importnumpy

asnp任务解决方案任务解决方案user_data=np.array([(1,26,'Male','Engineer'),(2,32,'Female','Teacher'),(3,18,'Female','Student'),(4,50,'Male','Teacher'),(5,41,'Female','Teacher'),(6,18,'Female','Student')],dtype=[('user_id',int),('age',int),('gender','U8'),('occupation','U32')])print(user_data)本段代码是使用NumPy库来创建一个结构化数组(structuredarray)。结构化数组允许在单个NumPy数组中存储不同类型的数据。这使得数据处理变得非常方便,可以通过字段名直接访问数据,而不是通过索引。例如,要获取所有用户的职业,你可以使用user_data['occupation']。这一段代码是对用户数据类型进行定义,'U8'和'U32'是Unicode字符串的数据类型,分别表示固定长度的Unicode字符串,长度为8和32个字符。对于gender和occupation字段,这通常是足够的,但请确保这些字段的数据不会超过这些长度限制。本段代码是打印出创建的结构化数组,可以检查数据是否有误还在等什么?马上动手实施用户数据创建任务吧~用户数据创建NumPy数组小结011011110110101111010111100100001011010101001001111014.NumPy数组操作知识目标01121110110101101101001001100110101010010011011010010110010111011010100110111010101010101101010011010010了解NumPy随机数生成方法了解NumPy数组操作函数随机数生成利用NumPy中的random模块生成随机数。numpy.random模块提供了非常全的自动产生数据的API,通过该模块中的函数可以很方便地生成随机数。rand()函数该函数作用生成一个(d0,d1,...,dn)维的数组,数组的元素取自[0,1)内均匀分布的随机数,但数组的元素不包括1。若没有参数输入,则生成一个数。括号里面的参数是指定产生数组的形状。randn()函数

该函数作用生成一个(d0,d1,...,dn)维的数组,数组的元素是标准正太分布随机数。若没有参数输入,则生成一个数。括号里面的参数是指定产生数组的形状。numpy.random.rand(d0,d1,...,dn)numpy.random.randn(d0,d1,...,dn)随机数生成randint()函数该函数作用生成指定范围的随机数,随机数取值区间为[low,high),若没有输入参数high则取值区间为[0,low)。size参数是元组,用于确定数组的形状,dtype用于指定数组中数据类型。random()函数

该函数作用产生[0.0,1.0)之间的浮点数,但数组的元素不包括1。size表示生成元素个数。若没有参数输入,则生成一个数。numpy.random.randint(low[,high,size,dtype])numpy.random.random(size=None)数组操作函数(一)修改数组形状1.用元组设置维度修改数组的形状方法:

数组名.shape=(x0,x1,x2…,xn)

参数x0-xn表示数组中每个维度上的大小,例如arr.shape=(3,4)表示将arr数组修改成3行4列数组,利用该方法会改变原数组arr的形状。

2.reshape()函数用reshape()函数修改数组的形状方法:数组名.reshape(x0,x1,x2…,xn)

参数x0-xn表示数组中每个维度上的大小。例如arr.reshape(3,4)生成一个3行4列新数组,而原数组arr不会改变。如果指定的维度和数组的元素数目不吻合,则函数将抛出异常。数组操作函数(二)数组展平1.ravel()函数

数组名.ravel()

2.flatten()函数

数组名.flatten()使用flatten()时,你得到的是原始数组的一个扁平化副本。使用ravel()时,你得到的是原始数组的一个扁平化视图,这可能会节省内存,并允许在某些情况下对原始数组进行非连续修改。推荐使用。数组操作函数(三)数组转置和轴对换1.transpose()函数numpy.transpose(arr)该函数可实现翻转给定数组的维度,并且返回数组的1个视图(view)。例如arr是一个3行5列数组,numpy.transpose(arr)函数就会返回arr数组转置为5行3列的数组视图,而原数组arr不改变。2.ndarray.T

函数该函数是属于ndarray类,作用类似于numpy.transpose数组操作函数(三)数组转置和轴对换rollaxis()函数

numpy.rollaxis(arr,axis,start)该函数可实现向后滚动特定的轴,直到1个特定位置。该函数中参数arr表示数组,axis表示要向后滚动的轴,其它轴的相对位置不会改变,start表示滚动到特定位置,默认为零,表示完整的滚动。swapaxes()函数

numpy.swapaxes(arr,axis1,axis2)该函数是交换数组的两个轴。对于1.10之前的NumPy版本,会返回交换后数组的视图。参数arr表示数组,axis1表示对应第1个轴的整数,axis2表示对应第2个轴的整数。数组操作函数(四)数组连接concatenate()函数

numpy.concatenate((arr1,arr2,…,arrn),axis)该函数是用于沿指定轴连接相同形状的两个或多个数组。参数arr1,arr2…arrn表示是相同维度的数组序列,axis表示沿着它连接数组的轴,默认为0。stack()函数

numpy.stack(arrays,axis)该函数能实现沿新轴连接数组序列。此功能添加自NumPy版本1.10.0。参数arrays表示相同形状的数组序列,axis表示返回数组中的轴,输入数组沿着它来堆叠。数组操作函数(四)数组连接hstack()函数

numpy.hstack(arrays)该函数可通过堆叠来生成水平的单个数组。参数arrays表示相同形状的数组序列。vstack()函数

numpy.vstack(arrays)该函数可通过堆叠来生成竖直的单个数组。参数arrays表示相同形状的数组序列。数组操作函数(五)数组分割split()函数

numpy.split(arr,indices_or_sections,axis)该函数是沿特定的轴将数组分割为子数组。参数arr表示被分割的数组,indices_or_sections表示从arr数组创建的大小相同的子数组的数量,可以为整数。axis表示返回数组中的轴,默认为0,表示竖直方向分割,1表示水平方向分割。数组操作函数(五)数组分割hsplit()函数

numpy.hsplit(arr,indices_or_sections)该函数是split()函数的特例,它是将数组沿着水平方向分割,即将一个数组按列分割为多个子数组。参数arr表示被分割的数组,indices_or_sections表示将arr数组创建为大小相同的子数组的数量。vsplit()函数

numpy.vsplit(arr,indices_or_sections)该函数是split()函数的特例,它是将数组沿着竖直方向分割,即将一个数组按行分割为多个子数组。参数arr表示被分割的数组,indices_or_sections表示将arr数组创建为大小相同的子数组的数量。数组操作函数(六)数组元素的添加与删除

1.append()函数

numpy.append(arr,values,axis)该函数是在数组的末尾添加元素,该函数会返回一个新数组,而原数组不变。参数arr表示输入的数组,values表示向arr数组添加的元素,axis表示沿着水平或竖直方向完成添加操作的轴。axis取0表示向竖直方向操作,values数组列维度与arr数组列维度相同;axis取1表示向水平方向操作,values数组行维度与arr数组行维度相同。insert()函数

numpy.insert(arr,obj,values,axis)该函数在给定索引之前,沿给定轴在输入数组中插入值。该函数会返回一个新数组,原数组不变。其中,参数arr表示输入的数组,obj表示在其之前插入值的索引,values表示向arr数组插入的值。数组操作函数(六)数组元素的添加与删除

3.delete()函数numpy.delete(arr,obj,axis)该函数返回从输入数组中删除指定子数组的新数组,原数组不变。与insert()函数的情况一样,如果未提供轴参数,则输入数组将展开。其中,参数arr表示输入的数组,obj是用整数或者整数数组表示的从输入数组中删除的子数组,axis表示沿着它删除给定子数组的轴,如果未提供axis值,则输入数组会被展开。4.unique()函数numpy.unique(arr,return_index,return_inverse,return_counts)该函数返回输入数组中的去重元素数组。该函数能够返回一个元组,包含去重数组和相关索引的数组。索引的性质取决于函数调用中返回参数的类型。不急后续会有操作应用实例哦~NumPy随机数生成方法NumPy数组操作函数小结5.用户数据更新任务实施电商用户消费数据分析会熟练使用Python集成开发工具,如PyCharm、Anaconda等;会使用NumPy生成随机数;会使用NumPy函数进行数组形状修改、合并和分割数组。能力目标任务概述引导问题用户数据更新任务解决方案任务评价主要内容教学难点任务概述010010011001101010100100110110100101110101000100001011011101001010101101010011010010任务工单在处理用户数据时,需要对数据进行一些操作,如添加新的数据、删除旧的数据、修改现有的数据等。接下来我们要利用NumPy的函数来进行操作,完成用户数据的更新。

任务描述:修改已经录入的用户信息。(1)生成随机数的函数有哪些?如何生成固定区间内的随机整数?(2)改变数组形状可以用什么函数?(3)实现数组之间的连接,可以用什么函数?(4)数组之间的连接需要注意哪些问题?”

问题引导:引导问题

任务评价:评价内容评价要点分值分数评定自我评价1.任务实施生成随机数2分正确使用随机函数得2分

数组形状转换2分会正确运用转换函数改变数组形状得2分

数组合并3分能正确合并数组得3分

2.结果展现结果数据显示与统计2分能正确显示数据得2分

3.任务总结依据任务实施情况总结结论1分总结内容切中本任务的重点要点得1分

合计10分

任务评价任务解决方案第1步:使用NumPy的随机函数来生成模拟的用户评分数据,取值为1-10的整数,并将其转换为二维数组。第2步:将新的评分数据添加到原始数据,组合成新的用户数据。利用randint函数生成随机整数,作为评分利用reshape函数转换数组形状为二维数组rating=np.random.randint(1,10,size=12)rating=rating.reshape(6,2)任务解决方案利用column_stack函数合并数组new_user_data=np.column_stack((user_data,rating))还在等什么?马上动手实施用户数据更新任务吧~生成随机数数组操作小结011011110110101111010111100100001011010101001001111016.NumPy统计分析函数知识目标01121110110101101101001001100110101010010011011010010110010111011010100110111010101010101101010011010010了解NumPy矩阵创建了解NumPy基本数学函数了解NumPy统计函数矩阵创建NumPy中的矩阵对象为matrix,它包含有矩阵的数据处理,矩阵计算,转置,可逆性等功能。matrix是ndarray的子类,矩阵对象是继承自NumPy数组对象的二维数组对象,因此,矩阵会含有数组的所有数据属性和方法。但是,矩阵与数组还是有一些重要的区别。在NumPy中,使用mat()、matrix()以及bmat()函数创建矩阵。矩阵创建(1)使用字符串创建矩阵在mat()函数中输入一个Matlab风格的字符串,该字符串以空格分隔列,以分号分隔行。如numpy.mat(‘123;456;789’),可创建一个3行3列矩阵,矩阵中元素为整数。(2)使用嵌套序列创建矩阵在mat()函数中输入嵌套序列,如numpy.mat([[2,4,6,8],[1.0,3,5,7.0]]),可创建一个2行4列的矩阵,矩阵中的元素为浮点数。(3)使用一个数组创建矩阵在mat()函数中输入数组,如numpy.mat(numpy.arange(9).reshape(3,3)),可创建一个3行3列的矩阵,矩阵中的元素为整数。矩阵创建(4)使用matrix()函数创建矩阵

matrix()函数可以将字符串、嵌套序列、数组和matrix转换成矩阵。其函数格式:matrix(data,dtype=None,copy=True)(5)使用bmat()函数创建矩阵

如果想将小矩阵组合成大矩阵,在NumPy中,可以使用bmat分块(blockmatrix)矩阵函数实现。

其函数格式:bmat(obj,ldict=None,gdict=None)

其中,obj为matrix。参数ldict和gdict为None。矩阵操作矩阵复制(1)tile()函数,其函数格式:numpy.tile(A,resp)通过resp给出的数,将A复制多次来构造一个数组,A为带操作的数组,reps是一个元组,指定了每个维度上的重复次数。(2)repeat()函数,其函数格式:numpy.repeat(a,repeats,axis=None)这个函数可以用于复制数组中的元素,可以选择在指定的轴上重复元素。a为需要操作的数组,repeats为复制的次数,axis为重复操作会沿着哪个轴进行,axis=0表示沿着行方向,axis=1表示沿着列方向。矩阵操作添加矩阵边框pad()函数,其函数格式:numpy.pad(array,pad_width,mode='constant',constant_values=0)其中,参数array表示要填充的数组;参数pad_width定义了被填充到每个轴的边缘的值的数量;mode为填充的模式,可以是constant、edge、linear_ramp、maximum、mean、median、minimum、reflect或wrap中的一个;constant_values当mode为constant时,表示用于填充的常数值。数组运算在NumPy中,数组可以直接进行加、减、乘、除、指数运算、求倒数、取相反数、位运算等运算。1.相同形状数组的运算2.不同形状数组的运算(广播机制)如果两个数据的形状(shape)不一致时,低维数组会自动将维度扩充到与高维数组一致,然后再按元素逐个运算,这就是数组的广播机制。

3.数组和标量之间的运算在NumPy中,数组和标量之间的算术运算就是将这个标量值传播到数组的各个元素,即将数组中的每个元素都与标量进行运算。通用函数NumPy中的ufunc对象(universalfunction)也称为ufunc函数,它包含了对数组进行处理的通用函数。通用函数(ufunc)是针对ndarray数组对象执行元素级运算的函数,即通用函数会对数组中的每一个元素值作用后产生新的元素值,并返回新的元素值组成的数组,因此,通用函数(ufunc)都是以NumPy数组作为输出。ufunc要求输入的数组shape是一致的,当数组的shape不相等时,则会使用广播机制(Broadcast)。广播机制一维数组广播运算时,按照行补齐方式,当行数不一致时,首先补齐行数,然后进行运算。广播机制二维数组,广播运算时,当列数不一致时,首先补齐列数,然后进行运算,当行数不一致时,首先补齐行数,然后进行运算。常用数学函数函数描述numpy.add()对应位置的元素相加numpy.subtract()对应位置的元素相减numpy.multiply()对应位置的元素相乘numpy.divide()对应位置的元素相除numpy.power(x,y)x的y次方numpy.sqrt()数组的正平方根numpy.log()以e为底的对数函数,即自然对数运算numpy.mod()输入数组中相应元素的相除后的余数numpy.around()指定数字的四舍五入值numpy.floor()不大于输入参数的最大整数numpy.ceil()大于输入参数的最小整数NumPy还提供了标准的三角函数,如sin()、cos()、tan()、arcsin()、arccos()、arcsin()等。常用统计函数函数描述numpy.sum()计算元素的和numpy.mean()计算元素的平均值numpy.average()计算元素的加权平均值numpy.std()计算元素的标准差numpy.var()计算元素的方差numpy.median()计算元素的中位数numpy.min()计算元素的最小值numpy.max()计算元素的最大值numpy.argmin()找出最小值的索引numpy.argmax()找出最大值的索引numpy.cumsum()计算所有元素的累计和numpy.cumprod()计算所有元素的累计积NumPy读写文本文件在数据统计分析中,经常需要从文件中读取数据或将数据写入文件。常用的存储文件的格式有文本文件、CSV格式文件、二进制格式文件和多维数据文件等。NumPy文件的读/写主要有二进制的文件读/写和文件列表形式的数据读/写两种形式。1.二进制文件读/写(1)save函数:np.save(file,array)或np.savez(file,array)save函数主要以二进制的格式保存数据,参数file为文件名称,以.npy为扩展名,压缩扩展名为.npz。参数array表示需要保存的数据,如果需要保存多个数组至一个文件中,可以使用savez函数。(2)load函数:np.load(file)load函数可以从二进制文件中获取数据,参数file为文件名称,以.npy为扩展名,压缩扩展名为.npz。NumPy读写文本文件2.文件列表形式的数据读/写(1)savetxt()函数在NumPy中,使用savetxt()函数可以将一维或二维数组写入后缀名为txt或csv的文件该函数的格式为:numpy.savetxt(fname,array,fmt='%.18e',delimiter=None,newline='\n',header='',footer='',comments='#',encoding=None)其中,参数fname表示文件、字符串或产生器,可以是.gz

或.bz2的压缩文件。参数array表示存入文件的数组(一维数组或者二维数组)。参数fmt表示写入文件的格式,如:%d,%.2f,%.18e,默认值是%.18e。NumPy读写文本文件(2)loadtxt()函数在NumPy中,读取TXT文件和CSV格式文件的函数是loadtxt(),函数格式:numpy.loadtxt(fname,dtype=<type'float'>,comments='#',delimiter=None,converters=None,skiprows=0,usecols=None,unpack=False,ndmin=0,encoding='bytes')其中,参数fname是文件、字符串或产生器;dtype表示数据类型;delimiter表示分割符,默认是空格。NumPy读写文本文件(3)genfromtxt()函数函数genfromtxt()是NumPy中比np.loadtxt()更通用的函数,它不但可以读取文本文件数据,还可以处理一些结构化数据、缺失值和异常情况,函数格式:genfromtxt(fname,dtype=<class'float'>,comments='#',delimiter=None,skip_header=0,skip_footer=0,converters=None,missing_values=None,filling_values=None,usecols=None,names=None,excludelist=None,deletechars=None,replace_space='_',autostrip=False,case_sensitive=True,defaultfmt='f%i',unpack=None,usemask=False,loose=True,invalid_raise=True,max_rows=None)genfromtxt()通常使用的参数有3个,第一个参数是文件名fname,第二个参数是分隔符delimiter,第三个参数是是否包含标题names,当names=True表示文件中包含列标题。dtype为数据类型,默认为float;comments表示注释符,默认为#;missing_values指定有哪些值表示缺失值;filling_values指定缺失值的替代值,可以是一个标量或用于填充每列缺失值的字典;分组分析函数分组分析法是一种常用数据分析方法,这种方法是根据数据分析对象的特征,按照一定的指标,把数据分析对象划分为不同的部分和类型来进行研究,以揭示其内在的联系和规律性。在NumPy中,np.bincount、np.digitize、np.histogram等函数可以根据特定的标准将数组中的元素分组。1.np.bincount()函数np.bincount()是统计数组中数字出现数量的函数,数值n在输入数组x中每出现1次,则输出o的o[n]+=1。函数格式如下:numpy.bincount(x,/,weights=None,minlength=0)分组分析函数2.np.digitize()函数np.digitize()函数用于获取数组x中每个值在数组的bin的区间索引。函数格式如下:numpy.digitize(x,bins,right=False)3.np.histogram()函数np.histogram()函数用于计算出数据的频数分布情况。函数格式如下:numpy.histogram(a,bins=10,range=None,density=None,weights=None)不急后续会有操作应用实例哦~矩阵创建及操作常用的数学函数常用的统计分析函数小结7.用户数据分析任务实施电商用户消费数据分析常用的数据分析方法和模型描述性统计分析计算数据集中趋势、离散程度等,概括数据特征,如平均值、标准差。聚类分析按用户相似特征分组,发现潜在需求和细分市场,助力精准营销。关联规则挖掘发现不同商品之间关联关系的方法,从而优化商品陈列和推荐策略。RFM模型衡量客户价值和预测客户购买行为的分析模型,企业可以识别出高价值客户和低价值客户,并采取相应的营销策略。会熟练使用Python集成开发工具,如PyCharm、Anaconda等;会使用NumPy函数进行数组计算;会使用NumPy进行用户数据分析。能力目标任务概述引导问题用户数据分析任务解决方案任务评价标准主要内容教学难点任务概述010010011001101010100100110110100101110101000100001011011101001010101101010011010010任务工单为了更好地了解客户群体,优化营销策略,我们需要根据用户提供的基本信息来分析客户特点。比如分析用户的年龄分布,确定主要的目标年龄段,也可以通过用户评分数据了解用户喜好。本任务利用NumPy计算用户评分的平均值、最大最小值和年龄标准差,并对年龄进行分组分析。

任务描述:计算用户评分的平均值、最大最小值和年龄标准差,并对年龄进行分组分析。(1)计算平均值、最大值、最小值的函数分别是什么?(2)在进行分组分析时,要如何确定分组界限和组距?(3)np.histogram函数返回了什么值?有什么意义?”

问题引导:任务概述

任务评价:评价内容评价要点分值分数评定自我评价1.任务实施创建数组1分能正确创建数组得1分

数据统计4分会使用函数求均值、最大值、最小值和标准差得4分

分组分析4分会使用函数进行分组分析得2分,结果显示正确得2分

2.任务总结依据任务实施情况总结结论1分总结内容切中本任务的重点要点得1分

合计10分

任务评价任务解决方案第1步:导入NumPy库,并给出别名np,创建结构化数组,录入用户信息任务解决方案第2步:针对用户评分情况进行分析,计算其平均值、最大值、最小值。使用np.mean(user_data['rating'])计算所有用户评分的平均值,并打印出来使用np.max(user

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论