当前位置: 首页 > wzjs >正文

泰安网站建设公司带云搜索系统

泰安网站建设公司带,云搜索系统,wordpress 短码按钮,做网站需要多少钱西安目录 一、多维数组库numpy 1、特点 2、相关函数 3、创建数组 4、numpy常用属性及函数 5、numpy数组的元素增删改查 ①numpy的增加 ②numpy的删除 ③numpy的查找 6、numpy数组的数学运算 7、numpy数组的切片 二、pandas数据分析库 1、认识pandas 2、Series类 3、…

目录

一、多维数组库numpy

1、特点

2、相关函数

3、创建数组

4、numpy常用属性及函数

5、numpy数组的元素增删改查

①numpy的增加

②numpy的删除

③numpy的查找

6、numpy数组的数学运算

7、numpy数组的切片

二、pandas数据分析库

1、认识pandas

2、Series类

3、DataFrame的构造访问

4、DataFrame的切片


数据分析我们主要涉及到numpy和pandas。

一、多维数组库numpy

numpy是Python中用于科学计算的库,它提供了强大的多维数组的对象,以及大量用于操作这些数组的函数(Python数组是存储同类型数据的高效结构)

1、特点

它具有以下特点:

①多维数组库,创建多为数组很方便,可以代替多维列表

②速度比多维列表快很多

③支持向量和矩阵的各种数学运算

④所有的元素类型必须相同

2、相关函数

函数功能
array(x)根据列表或元组x创建数组
arange(x,y,i)创建一堆数组,元素等价于range(x,y,i)
linespace(x,y,n)创建一个由区间[x,y]的n-1等分点构成的一维数组,包含x和y
random.randint(...)创建一个元素为随机整数的数组
zeros(n)创建一个元素全为0.0的长度为m的数组
ones(n)创建一个元素全为1.0的长度为n的数组(后面可加dtype=int,即均为整数)

3、创建数组

我们可以根据上面的函数创建几个数组的示例:

import numpy as npa = np.array([1,2,3])
print(a)b = np.arange(1,9,2)
print(b)c = np.linspace(1,10,4)
print(c)d = np.random.randint(10,20,[2,3])      #输出一些从10到20(包含端点)的随机数,构成生成一个两行三列的数组
print(d)

输出:

从这些输出中,我们就能看见这些数组和一些列表之类的数据类型的不同

4、numpy常用属性及函数

属性或函数含义及功能
dtype数组元素的类型
ndim数组是几维的
shape数组每一维的长度
size数组元素的个数
argwhere(...)查找元素
tolist()转换为list
min()求最小元素
max()求最大元素
reshape()改变数组的形状
flatten()转换为一维的数组

下面我们来把这些函数结合到代码中:

import numpy as np
a = np.array([i for i in range(12)])    #我们先用列表生成式生成了一个从0到11的数组
print(a)
print(a.dtype)  #输出a的类型
print("\n")b = a.reshape(3,4)      #转化为三行四列的数组
print(b)
print(b.shape)
print("\n")print(b.size)       #注意区分这两个size是指元素的个数,而此时的len就是说这个数组有几行
print(len(b))
print("\n")print(a.ndim)   #看数组的维度,一维就是只有一行或者一列,二维就是有行有列,三维就是还有深度
print(b.ndim)
print("\n")listone = b.tolist()    #转化为列表
print(listone)
print("\n")c = b.flatten()     #拉直,就是变成一维的
print(c)

输出:

5、numpy数组的元素增删改查

在Python的numpy数组中,当我们生成了这个数组,这个数组的元素个数,形状是不能进行改变的,而上面和一会下面提到的增删元素的函数都是生成了一个新的数组

函数:

函数功能
append(x,y)若y是数组,列表,元组之一,就将y的元素添加进数组x得到新数组,否则就将y本身添加进数组x得到新的数组
concatenate(...)拼接多个列表
delete(...)删除数组元素得到新数组

我们把这些函数应用到代码中:

①numpy的增加

import numpy as npa = np.array((1,2,3))
b = np.append(a , 9)
print(b)
print(a)
print("\n")c = np.append(b, [80 , 90])     #这些函数都只会创建一个新的数组,输出旧的依旧不变
print(c)
print(b)
print("\n")d = np.concatenate((c , [4,5,6] , [7,8,9]))     #concatenate函数的值必须是一个元组,元组内部包含需要拼接到一起的各个数据
print(d)

输出:

②numpy的删除

代码:

import numpy as npa = np.array((1,2,3,4,5))
b = np.delete(a , 1)
print(b)
print(a)
print("\n")c = np.array([[1,2,3] , [4,5,6] , [7,8,9]])
d = np.delete(c , 2 , axis=0)   #axis就是用来知名具体的行或轴,0就是行,1就是列,代码中的就是分别指删除第二行和删除第二列
e = np.delete(c , 2 , axis=1)   
print(d)
print(e)

输出:

③numpy的查找

在numpy中,我们可以通过元素的数值来查找其对应的下标,我们也可以简单的判断某个元素是否在数组内部:

代码:

import numpy as npa = np.array((1,2,3,4,5,2,8,9))posone = np.argwhere(a == 2)
print(posone)print(2 in a)

输出:

我们也可以选出符合某个范围的数值:

import numpy as npa = np.array((1,2,3,4,5,2,8,9))b = a[a > 5]
print(b)a[a < 5] = 0    #虽然不能改变数组的长度,形状,但是可以更改元素的数值!
print(a)

输出:

6、numpy数组的数学运算

numpy数组拥有强大的数学运算,它身为一个数组居然能直接和数字进行运算!(向量化运算,简直不要太强)

import numpy as npa = np.array((1,2,3,4,5))b = a + 1   #数组与数字
print(b)c = a * b   #数组与数组
print(c)

输出:

7、numpy数组的切片

numpy身为一个数组,当然可以进行切片操作了,但是它有一个特点,在我们前面的列表,元组中,一个切片就相当于是一个新的元素了,但是在numpy数组中,他的切片是一个“视图”,也就是说这个切片是原数组的一部分,而不是一部分的拷贝(即我们改变了切片,原数组也会改)

但如果我们就是想要一个独立的切片,我们可以使用copy函数

import numpy as npa = np.array((1,2,3,4,5,6,7,8,9))b = a[1:6]
print(b)c = np.copy(a[1:6]) 
print(c)b[1] = 999
print(a)
print(c)

我们在上面的代码中用b直接截取了一部分的切片,而我们的c则是这个切片的拷贝

当我们改变了这个切片b时,身为原数组的a受到了影响,但是我们的拷贝c却无变化

二、pandas数据分析库

1、认识pandas

pandas的核心功能是在二维表格上进行各种操作,如增删,修改,求一列数据的和,差,方差中位数,平均数等

它需要有numpy的支持

如果把pandas与openpyxl等库结合,还可以读写excel文档

而在pandas中最重要的类就是DataFrame,表示二维表格

(这是一个第三方库,需要pip下载)

2、Series类

Series类是一个一维表格,每个元素带有标签,且含有下标,兼具列表和字典的访问形式

我们现在就创建一个一维表格,并对他进行一些基础操作:​​​​​

import pandas as pds = pd.Series(data = [100 , 110 , 120] , index = ["语文" , "数学" , "英语"])for i in s :print(i , end = "")print("\n")print(s[1])
print(s["数学"])
print("\n")s["音乐"] = 99
s.pop("语文")
print(s)

看看输出:

以及一些计算和具体的查找:

import pandas as pds = pd.Series(data = [100 , 110 , 120] , index = ["语文" , "数学" , "英语"])print(s.sum() , s.min() , s.max() , s.mean() , s.median())
#输出总和,最小值,最大值,平均值,中位数print(s.idxmax() , s.argmax())
#输出最大值的元素以及下标

输出:

3、DataFrame的构造访问

DataFrame是带有行列标签的二维表格,每一列都是一个Series

我们先试着创建一个简单的二维表格:

import pandas as pdpd.set_option("display.unicode.east_asian_width" , True)    #这一行的作用是防止中文字符的宽度导致表格显示错误scores = [['男',90,100,110] , ['男',120,119,140] , ['女',120,110,120]]
names = ["Ken" , "Sue" , "Wen"]
courses = ["性别" , "语文" , "数学" , "英语"]df = pd.DataFrame(data = scores , index = names , columns = courses)    #先用DataFrame创建一个函数,里面分别是二维表格的数据,行标签,列标签
print(df)

看看输出:

二维表格的访问十分灵活,我们可以用一些函数来访问二维表格的各种数据或标签:

import pandas as pdpd.set_option("display.unicode.east_asian_width" , True)    #这一行的作用是防止中文字符的宽度导致表格显示错误scores = [['男',90,100,110] , ['男',120,119,140] , ['女',120,110,120]]
names = ["Ken" , "Sue" , "Wen"]
courses = ["性别" , "语文" , "数学" , "英语"]df = pd.DataFrame(data = scores , index = names , columns = courses)    #先用DataFrame创建一个函数,里面分别是二维表格的数据,行标签,列标签#————————————————————————以上是创建了一个二维表格————————————————————————print(df.values[0][1])      #求数据中第0行第1列print(type(df.values))      #返回表格的数据类型print(list(df.index))       #以列表的形式返回行标签print(list(df.columns))      #以列表的形式返回列标签print(df.index[2] , df.columns[2])      #定位到列标签和行标签print(df["语文"])     #输出语文标签所包含的数据

看看输出:

4、DataFrame的切片

在DataFrame中,我们可以用下标做切片,也可以用标签做切片

在DataFrame中,它的切片也是一个视图!

二维列表就像一个平面,我们可以切一个条(行或列),也可以切一个小面(行列均包含)

import pandas as pdpd.set_option("display.unicode.east_asian_width" , True)    #这一行的作用是防止中文字符的宽度导致表格显示错误scores = [['男',90,100,110] , ['男',120,119,140] , ['女',120,110,120]]
names = ["Ken" , "Sue" , "Wen"]
courses = ["性别" , "语文" , "数学" , "英语"]df = pd.DataFrame(data = scores , index = names , columns = courses)    #先用DataFrame创建一个函数,里面分别是二维表格的数据,行标签,列标签#————————————————————————以上是创建了一个二维表格————————————————————————df2 = df.iloc[0:2]
df3 = df.loc["Ken":"Sue"]   #①iloc是用于下标索引,loc是基于标签索引    ②注意一点:用下标切片是不包含结束端的,而用标签索引是包含的
#上面两个等价!
print(df2)
print(df3)
print("——————————————————————————————————————————————————————————")df4 = df.iloc[: , 0:3]      #前面的冒号没写默认全选
df5 = df.loc[: , "性别":"数学"]
print(df4)
print(df5)
print("——————————————————————————————————————————————————————————")df6 = df.iloc[:2 , [0,2]]   #也可以这样表示,里面有那个数字,就单只哪行或列(不是范围)(里面是逗号)
df7 = df.loc[:"Sue" , ["性别" , "数学"]]
print(df6)
print(df7)

输出:

以上就是Python数据分析及相关库(一)的相关内容:)

http://www.dtcms.com/wzjs/221087.html

相关文章:

  • 做海外贸易网站中国十大企业培训公司
  • 张家港网站制作网站外链是什么意思
  • 免费制作相册视频网站模板seo关键词查询排名软件
  • 武汉网站搜索优化外贸营销系统
  • 记录开发wordpress河南网站关键词优化
  • wordpress网站seo谷歌外贸平台推广需要多少钱
  • 做三级锅炉证模拟考试的网站福州专业的seo软件
  • 大浪做网站公司百度关键词优化排名技巧
  • 专业制作网站 地摊免费百度seo引流
  • 网页设计欣赏作品搜索引擎优化需要多少钱
  • oss可以做网站根目录吗高端营销型网站
  • 在线制作网页系统碉堡了seo博客
  • 做网站和做系统的区别各大搜索引擎提交入口
  • 多就能自己做网站资阳市网站seo
  • 请问哪个网站可以做当地向导百度在线下载
  • 沧州网站建设设计定制培训心得体会1000字
  • 微信做网站支付工具济南seo优化公司助力排名
  • 查找网站注册时间全球最受欢迎的网站排名
  • 无锡高端网站设计建设html友情链接代码
  • 没网站怎么做淘宝客南京网站推广公司
  • 学vue可以做pc网站广告联盟哪个比较好
  • 电商产品推广文案深圳宝安seo外包
  • 网站搭建流程图合肥今日头条新闻
  • 商务网站内容建设教程杭州seo推广优化公司
  • 网站插入qq百度快照手机入口
  • 襄阳购物网站开发设计全网营销推广方案外包
  • 动漫做的游戏 迅雷下载网站有哪些网络营销策划书的结构是什么
  • 掌网站开发的基本流程seo推广方式是什么呢
  • 用电脑做服务器搭建php网站杭州seo服务公司
  • 下沙网站建设网络销售哪个平台最好