您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据挖掘与识别 > Python数据分析与应用 第2章 NumPy 数值计算基础
大数据,成就未来NumPy数值计算基础2018/1/202大数据挖掘专家1掌握NumPy矩阵与通用函数利用NumPy进行统计分析目录掌握NumPy数组对象ndarray233大数据挖掘专家属性说明ndim返回int。表示数组的维数shape返回tuple。表示数组的尺寸,对于n行m列的矩阵,形状为(n,m)size返回int。表示数组的元素总数,等于数组形状的乘积dtype返回data-type。描述数组中元素的类型itemsize返回int。表示数组的每个元素的大小(以字节为单位)。创建数组对象1.数组属性:ndarray(数组)是存储单一数据类型的多维数组。4大数据挖掘专家参数名称说明object接收array。表示想要创建的数组。无默认。dtype接收data-type。表示数组所需的数据类型。如果未给定,则选择保存对象所需的最小类型。默认为None。ndmin接收int。指定生成数组应该具有的最小维数。默认为None。创建数组对象2.数组创建numpy.array(object,dtype=None,copy=True,order='K',subok=False,ndmin=0)5大数据挖掘专家In[1]:importnumpyasnp#导入NumPy库arr1=np.array([1,2,3,4])#创建一维数组print('创建的数组为:',arr1)Out[1]:创建的数组为:[1234]In[2]:arr2=np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]])#创建二维数组print('创建的数组为:\n',arr2)Out[2]:创建的数组为:[[1234][4567][78910]]In[3]:print('数组维度为:',arr2.shape)#查看数组结构Out[3]:数组维度为:(3,4)创建数组对象创建数组并查看数组属性In[4]:print('数组维度为:',arr2.dtype)#查看数组类型Out[4]:数组维度为:int32In[5]:print('数组元素个数为:',arr2.size)#查看数组元素个数Out[5]:数组元素个数为:12In[6]:print('数组每个元素大小为:',arr2.itemsize)#查看数组每个元素大小Out[6]:数组每个元素大小为:46大数据挖掘专家创建数组对象重新设置数组的shape属性In[7]:arr2.shape=4,3#重新设置shapeprint('重新设置shape后的arr2为:',arr2)Out[7]:重新设置shape维度后的arr2为:[[123][445][677][8910]]使用arange函数创建数组In[8]:print('使用arange函数创建的数组为:\n',np.arange(0,1,0.1))Out[8]:使用arange函数创建的数组为:[0.0.10.20.30.40.50.60.70.80.9]7大数据挖掘专家创建数组对象使用linspace函数创建数组In[9]:print('使用linspace函数创建的数组为:',np.linspace(0,1,12))Out[9]:使用linspace函数创建的数组为:[0.0.09090909…1.]使用logspace函数创建等比数列In[10]:print('使用logspace函数创建的数组为:',np.logspace(0,2,20))Out[10]:使用logspace函数创建的数组为:[1.1.274274991.62377674...,61.5848211178.47599704100.]8大数据挖掘专家创建数组对象使用zeros函数创建数组In[11]:print('使用zeros函数创建的数组为:',np.zeros((2,3)))Out[11]:使用zeros函数创建的数组为:[[0.0.0.][0.0.0.]]使用eye函数创建数组In[12]:print('使用eye函数创建的数组为:',np.eye(3))Out[12]:使用eye函数创建的数组为:[[1.0.0.][0.1.0.][0.0.1.]]9大数据挖掘专家创建数组对象使用diag函数创建数组In[13]:print('使用diag函数创建的数组为:',np.diag([1,2,3,4]))Out[13]:使用diag函数创建的数组为:[[1000][0200][0030][0004]]使用ones函数创建数组In[14]:print('使用ones函数创建的数组为:',np.ones((5,3)))Out[14]:使用ones函数创建的数组为:[[1.1.1.][1.1.1.][1.1.1.][1.1.1.][1.1.1.]]10大数据挖掘专家NumPy基本数据类型与其取值范围(只展示一部分)创建数组对象3.数组数据类型类型描述bool用一位存储的布尔类型(值为TRUE或FALSE)inti由所在平台决定其精度的整数(一般为int32或int64)int8整数,范围为−128至127int16整数,范围为−32768至32767int32…………11大数据挖掘专家创建数组对象数组数据类型转换In[15]:print('转换结果为:',np.float64(42))#整型转换为浮点型Out[15]:转换结果为:42.0In[16]:print('转换结果为:',np.int8(42.0))#浮点型转换为整型Out[16]:转换结果为:42In[17]:print('转换结果为:',np.bool(42))#整型转换为布尔型Out[17]:转换结果为:TrueIn[18]:print('转换结果为:',np.bool(0))#整型转换为布尔型Out[18]:转换结果为:FalseIn[19]:print('转换结果为:',np.float(True))#布尔型转换为浮点型Out[19]:转换结果为:1.0In[20]:print('转换结果为:',np.float(False))#布尔型转换为浮点型Out[20]:转换结果为:0.012大数据挖掘专家创建数组对象创建一个存储餐饮企业库存信息的数据类型。其中,用一个长度为40个字符的字符串来记录商品的名称,用一个64位的整数来记录商品的库存数量,最后用一个64位的单精度浮点数来记录商品的价格,具体步骤如下。In[21]:df=np.dtype([(name,np.str_,40),(numitems,np.int64),(price,np.float64)])print('数据类型为:',df)Out[21]:数据类型为:[('name','U40'),('numitems','i8'),('price','f8')]创建数据类型13大数据挖掘专家创建数组对象查看数据类型,可以直接查看或者使用numpy.dtype函数查看。In[22]:print('数据类型为:',df[name])Out[22]:数据类型为:U40In[23]:print('数据类型为:',np.dtype(df[name]))Out[23]:数据类型为:U4014大数据挖掘专家创建数组对象在使用array函数创建数组时,数组的数据类型默认是浮点型。自定义数组数据,则可以预先指定数据类型In[24]:itemz=np.array([(tomatoes,42,4.14),(cabbages,13,1.72)],dtype=df)print('自定义数据为:',itemz)Out[24]:自定义数据为:[('tomatoes',42,4.14)('cabbages',13,1.72)]15大数据挖掘专家生成随机数无约束条件下生成随机数In[25]:print('生成的随机数组为:',np.random.random(100))Out[25]:生成的随机数组为:[0.153431840.515815850.07228451...0.244183160.925105450.57507965]生成服从均匀分布的随机数In[26]:print('生成的随机数组为:\n',np.random.rand(10,5))Out[26]:生成的随机数组为:[[0.398304910.940113940.599749230.444538940.65451838]...[0.14685440.829729890.580111150.451576670.32422895]]16大数据挖掘专家生成随机数生成服从正态分布的随机数In[27]:print('生成的随机数组为:\n',np.random.randn(10,5))Out[27]:生成的随机数组为:[[-0.605719680.39034908-1.633155130.02783885-1.84139301]...,[-0.275004871.417112620.66359670.35486644-0.26700703]]生成给定上下范围的随机数,如创建一个最小值不低于2、最大值不高于10的2行5列数组In[28]:print('生成的随机数组为:',np.random.randint(2,10,size=[2,5]))Out[28]:生成的随机数组为:[[66668][96684]]17大数据挖掘专家函数说明seed确定随机数生成器的种子。permutation返回一个序列的随机排列或返回一个随机排列的范围。shuffle对一个序列进行随机排序。binomial产生二项分布的随机数。normal产生正态(高斯)分布的随机数。beta产生beta分布的随机数。chisquare产生卡方分布的随机数。gamma产生gamma分布的随机数。uniform产生在[0,1)中均匀分布的随机数。生成随机数random模块常用随机数生成函数18大数据挖掘专家In[29]:arr=np.arange(10)print('索引结果为:',arr[5])#用整数作为下标可以获取数组中的某个元素Out[29]:索引结果为:5In[30]:print('索引结果为:',arr[3:5])#用范围作为下标获取数组的一个切片,包括arr[3]不包括arr[5]Out[30]:索引结果为:[34]In[31]:print('索引结果为:',arr[:5])#省略开始下标,表示从arr[0]开始Out[31]:索引结果为:[01234]In[32]:print('索引结果为:',arr[-1])#下标可以使用负数,-1表示从数组后往前数的第一个元素Out[32]:索引结果为:9通过索引访问数组1.一维数组的索引19大数据挖掘专家In[33]:arr[2:4]=100,101print('索引结果为:',arr)#下标还可以用来修改元素的值Out[33]:索引结果为:[01100101456789]In[34]:#范围中的第三个参数表示步长,2表示隔一个元素取一个元素print('索引结果为:',arr[1:-1:2])Out[34]:索引结果为:[110157]In[35]:print('索引结果为:',arr[5:1:-2])#步长为负数时,开始下标必须大于结束下标Out[35]:索引结果为:[5101]通过索引访问数组1.一维数组的索引续表20大数据挖掘专家In[36]:arr=np.array([[1,2,3,4,5],[4,5,6,7,8],[7,8,9,10,11]])print('创建的二维数组为:',arr)Out[36]:创建的二维数组为:[[12345][45678][7891011]]In[37]:print('索引结果为:',arr[0,3:5])#索引第0行中第3和4列的元素Out[37]:索引结果为:[45]通过索引访问数组2.多维数组的索引21大数据挖掘专家In[38]:#索引第2和3行中第3~5列的元素print('索引结果为:',arr[1:
本文标题:Python数据分析与应用 第2章 NumPy 数值计算基础
链接地址:https://www.777doc.com/doc-4209889 .html