![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
python高级数据处理方法
包括numpy/pandas等对数据进行操作
梧桐雪
I am MetaWu from a magicverse where Models are all wrong, some of which are useful.
展开
-
使用numpy中的matmul方法计算矩阵乘法
我们在线性代数中学过的矩阵乘法比较特殊,需要对应的行列向量点乘之后累加,如以下公式所示:mij=∑k=1naikbkjm_{ij}=\sum_{k=1}^na_{ik}b_{kj}mij=k=1∑naikbkj假设mijm_{ij}mij为矩阵MMM中第iii行第jjj列位置上的元素,MMM的尺寸为a×ba×ba×b,aika_{ik}aik为矩阵AAA中的元素,AAA的尺寸为a×na×na×n的矩阵,bkjb_{kj}bkj为矩阵BBB中的元素,BBB的尺寸为n×bn×bn×b的矩阵,并且他原创 2021-07-07 17:29:57 · 1389 阅读 · 3 评论 -
numpy选取矩阵数据的子矩阵
如同在excel里面选择一块区域一样,我现在需要从numpy的一个大型的数据矩阵中选取其中的一小块。我们只需要知道带选取的矩阵的各个角点坐标,然后转换成slice的格式(也就是start:end的形式,注意start是等于,end是小于没有等于)就可以完成这个操作,具体的语法如下:submatrix = matrix[row_slice,col_slice]示例代码如下:In [1]: import numpy as npIn [2]: e = np.array([[ 0, 1, 2, 3原创 2020-12-23 16:46:10 · 4952 阅读 · 1 评论 -
matplotlib绘制伯努利分布的概率密度图
根据伯努利分布的定义,我们可以得到以下公式:f(x)=px(1−p)1−x for x∈{0,1}f(x)=p^{x}(1-p)^{1-x} \quad \text { for } x \in\{0,1\}f(x)=px(1−p)1−x for x∈{0,1}当我们进行观测,得到了事件xxx发生频率的观测值(代码中假设是0.5,比如抛硬币1000次,500次朝上、500次朝下),我们就可以画出伯努利分布的概率p的密度图。import numpy as npimpo原创 2020-09-24 23:49:10 · 3449 阅读 · 0 评论 -
python可视化线性拟合的机器学习(Machine Learning)过程
一、导入需要的库import numpy as npimport pandas as pdimport matplotlib.pyplot as plt二、初始化参数x_points = [1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]y_points = [1, 2, 3, 1, 4, 5, 6, 5, 7, 10, 15, 9]m = 0b = 0y = lambda x: m * x + blearn = 0.01三、编写权重更新函数def su原创 2020-08-28 00:13:06 · 876 阅读 · 0 评论 -
用python画股票价格走势图
第一步、通过tushare模块爬取指定股票代码的数据存储到csv文件中。知识点如下:1.pip install 安装模块2.tushare模块的 get_hist_data方法3.df数据的.to_csv方法保存数据表代码如下:import tushare as tsstock_info = ts.get_hist_data('600838')stock_info.to_csv('...原创 2020-03-03 08:40:31 · 7785 阅读 · 7 评论 -
matplotlib绘制线性回归y=kx+b参数的损失函数等高线图
如题,直接上代码和结果import mathimport randomimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltx_train = np.array([0, 1, 2, 3, 4, 5])y_train = np.array([1.1, 2.2, 3.8, 4.1, ...原创 2020-03-02 17:42:42 · 2545 阅读 · 0 评论 -
用pyecharts对sklearn中的鸢尾花数据进行可视化展示
sklearn中提供了一些入门的数据集,一个典型的例子就是鸢尾花数据库,可以通过四个参数对花进行三分类,我们使用前三个参数作为xyz坐标,可以大致看出这些数据点在空间中的分布,代码和结果如下所示。在安装完依赖包之后可以直接使用。源代码如下:from sklearn import datasetsimport pandas as pdfrom pyecharts import option...原创 2020-02-24 22:45:31 · 1909 阅读 · 0 评论 -
一个实战案例带你走完python数据分析全流程:豆瓣电影评论的关键词云图制作
用python做数据处理大致可以分成以下三个部分:一、数据的获取:一般可以有公开的数据集、网络爬虫、自己整理等方式。二、数据的处理:包括数据的预处理、数据的查找/筛选/排序/统计等操作。三、数据的展示:包括图、表等可视化呈现。下面用一个电影评论的关键词云图制作为例,来演示这个数据处理的全流程。在这个例子中,我们将用到以下工具包:import pandas as pd ...原创 2020-02-23 17:49:48 · 2731 阅读 · 2 评论 -
python用数据告诉你谁是《西游记》真正的主角:基于jieba模块的分析与基于pyechart的词云可视化展示
先说结论:西游记里面孙悟空(孙行者)的出镜率最高,是名副其实的男猪脚。以下的词云图可以直观地证明这个结论。那么这个图是怎么的出来的呢?本文将分七个步骤进行详细的说明。一、导入所需模块这个任务我们需要使用jieba、pandas、pyecharts等包体,我们使用import进行导入:import jiebaimport pandas as pdimport pyecharts as p...原创 2020-02-22 22:29:00 · 6590 阅读 · 7 评论 -
matplotlib中用scatter方法制作气泡图
使用Scatter方法中提供了不少参数可以用来改变图表中的显示内容,比如用s参数来设置每个点的大小,可以做出气泡图的效果。我们来看一下代码:import matplotlib.pyplot as pltx_axis = ['Bulbasaur','Charmander','Squirtle']y_axis = [10,6,3] bubble_size = []for i in y_ax...原创 2020-02-22 11:10:57 · 1657 阅读 · 0 评论 -
用rcParam参数解决matplot中的中文乱码的问题
python是老外发明的,所以对中文的支持需要额外的代码来进行设置。否则,会出现以下的乱码:我们需要使用rcParam参数来设置中文字体,比如仿宋,这样就可以让matplot正确显示中文了。具体的代码如下:import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['fangsong']plt.rcParams['a...原创 2020-02-22 10:19:28 · 988 阅读 · 0 评论 -
五步法matlabplot绘图:以plot/scatter/bar方法为例
matplotlib也是python数据分析中常用的一个库,用于数据处理分析的最后一步:数据的可视化展示。我们在matlab中经常会用到plot函数做出数学曲线,其实matplotlib就是模仿matlab这样风格作图的,它是由Hunter教授开发的一开始用于科研图表制作的一个库。下面我将以散点图为例,示范如何绘制一幅完整的matplot图像。第一步:导入matplot包及需要使用的模块,注意导...原创 2020-02-22 10:10:56 · 1813 阅读 · 0 评论 -
python中使用pyecharts直接绘制png图片
pyecharts默认render的输出是html文件,需要在浏览器中打开,那么能不能直接生成png格式的图片呢?我搜索了一下,大概有两种方法。第一种是使用pyecharts-snapshot需要安装phantomjs, 安装 Nodejs 环境,安装 pyecharts-snapshot,参考博文python连echarts画图并将文件保存为png图片。经过漫长的安装调试满足了环境之后,成...原创 2020-02-20 23:12:14 · 10404 阅读 · 3 评论 -
用pyecharts绘制词云图
词云图,也叫文字云。“词云”这个概念由美国西北大学新闻学副教授、新媒体专业主任里奇·戈登(Rich Gordon)于近日提出。戈登做过编辑、记者,曾担任迈阿密先驱报(Miami Herald)新媒体版的主任。他一直很关注网络内容发布的最新形式——即那些只有互联网可以采用而报纸、广播、电视等其它媒体都望尘莫及的传播方式。通常,这些最新的、最适合网络的传播方式,也是最好的传播方式。 因此,“词云”就是...原创 2020-02-20 19:54:01 · 5765 阅读 · 1 评论 -
pyecharts渲染之后打开html显示空白的解决办法
刚刚遇到了一个很诡异的问题,就是用pyechart作图,结果发现同样的代码,之前可以成功运行在浏览器中显示正确的代码,但是在修改了一番之后由改回原来的代码,重新在浏览器中打开这个html文件的时候,却显示一篇空白,后来百度了之后找到了答案,原来是在生成的html文件中,印用了 ,这样就可以实现在本地引用这个文件了。...原创 2020-02-19 17:18:21 · 12027 阅读 · 2 评论 -
pyecharts五步法作图实现数据可视化(以柱状图bar为例)
第一步:导入Bar对象,注意import语句要完整第二步:新建一个Bar对象第三步:使用bar.add_xaxis()添加x轴的数据第四步:使用bar.add_yaxis()添加y轴的数据与y轴标签第五步:使用render()进行渲染生成最终图形的html文件(在浏览器中打开)完整代码如下:from pyecharts.charts import Barbar = Bar()bar...原创 2020-02-19 16:14:53 · 2291 阅读 · 0 评论 -
pyecharts可视化的简介和安装
pyecharts是一个比较受到开发者欢迎的数据可视化包,可以用python调用其中的函数库来做出精美的图表和曲线等等,非常实用与数据处理的结果展示。他提供了包括地图库在内的30多种图像的模板,使用的时候只需要选择一个心仪的模板,稍作参数的修改,就可以得到自己想要的效果。他的官网是:http://pyecharts.org安装的方式和普通的python包一样,使用pip install 指令如下...原创 2020-02-19 15:58:53 · 487 阅读 · 0 评论 -
通过numpy找到数组中符合条件的最右侧数据
一、需求现有一个数组,比如[0.1,2.1,1.5,2.3,3.4,1,3,5,2,5],现在要找大于1,小于3的最右侧(index最大)的数据,在这个案例中是2。二、思路使用pandas中的数据筛选功能,然后取出index列表中的最后一个元素作为数组所求的index,然后通过index取出对应的值。三、实现如以下代码所示:import numpy as npimport pandas as pdrecord = np.array([0.1,2.1,1.5,2.3,3.4,1,3,5,2,5原创 2020-09-18 16:59:45 · 411 阅读 · 0 评论 -
python将json文件转换为csv文件
需要通过引入json和csv库,然后根据以下步骤进行操作:一、读取json文件、创建csv文件二、提出json中表头和表的内容三、使用csv.reader(读取器)写入csv内容四、关闭json和csv文件其实就是大象装进冰箱的步骤,封装好的函数代码如下:import jsonimport csv"""需求:将json中的数据转换成csv文件"""def csv_json(): # 1.分别 读,创建文件 json_fp = open("word.json", "r"原创 2020-09-02 10:57:59 · 10280 阅读 · 4 评论 -
python中使用原生方法和使用pandas读取csv文件的三种方式
第一种:使用with open方法第二种:使用csv.reader方法第三种:使用pd.read_csv方法代码如下:with open("word.csv",encoding='utf-8') as file: contents = file.readlines()for line in contents: print(line)import csvcsv_reader = csv.reader(open("word.csv",encoding='utf-8'))for row in原创 2020-09-02 10:54:49 · 744 阅读 · 0 评论 -
用python画类王者荣耀英雄能力多边形雷达图
现有以下表格,我需要画成第二张图中的雷达图(类似fifa足球、王者荣耀里面的那种球员能力图)代码如下,mark,方便以后使用:#雷达图函数构建import numpy as npimport matplotlib.pyplot as pltimport mathimport matplotlib.colors as mcolors# 导入中文import matplotlib.font_manager as font_managerfont_dirs = ['./font']fo原创 2020-08-14 20:24:02 · 1151 阅读 · 0 评论 -
使用pandas查找数据表中第一个非零元素对应的角度
有以下数据表,第一列表示角度值,第二列表示是否满足条件,现在的任务是找到第一个满足条件的角度,也就是第一个1出现的行号。我们可以编写以下代码来完成以上需求import pandas as pddata = pd.read_csv("oneOrZeros.csv",encoding="utf-8",header=None)#target表示你要查询的数值target = 1#sel_data存储了所有val等于target的记录sel_data = data[data[1]==target]原创 2020-08-05 18:38:01 · 1803 阅读 · 0 评论 -
通过成绩表的例子轻松理解pandas中merge方法
一、merge的基本概念merge方法可以说是pandas数据处理中比较重要但是也比较难理解的一个概念,在pandas的官方文档中,merge的定义如下:Append two dataframes with overlapping index (emulate R rbind)翻译成中文,就是“把两个DataFrame用重合的索引连接起来”。我们可以看出,merge方法其实和append...原创 2020-05-07 09:33:45 · 509 阅读 · 0 评论 -
通过movie_id来查询数据库获取电影名字和平均得分
douban_comment_data.db中包含三个表:comment、movie、movie_chinese。三个表中的数据模块定义(DDL)如下:1.commentCREATE TABLE comment ( ID INTEGER PRIMARY KEY AUTOINCREMENT, TIME TEXT NOT NULL, MOVIEID...原创 2020-02-22 23:41:58 · 3057 阅读 · 0 评论 -
python对sql数据库文件的基本操作(连接、读取、统计、筛选)
一、导入数据库相关的包。我们需要处理数据库,需要用到sqlite3和pandas两个数据库,使用import语句进行导入:import sqlite3import pandas as pd二、数据库的连接和读取我们需要使用sqlite3.connect()方法来连接数据库,通过连接,我们就可以用sql的select语句来读取数据库中的数据了。注意我们这里调用的pd.rea_dql_qu...原创 2020-02-22 20:51:47 · 7878 阅读 · 2 评论 -
用python将笔记本电脑作为服务器搭建网站
我们可以用flask来实现一个最单的CS(Client-Server)的网页,供其他用户远程通过浏览器访问本地文件。比如我整理了一张vivid_alphabet.csv表格,想让远端的朋友看到,就可以编写python代码来生成一个html页面,然后把这个页面的地址发送给对方,对方就可以在他的电脑上看到这个文件了。具体的操作步骤如下:一、新建一个工程目录。新建一个python文件,把需要展示的表格...原创 2020-02-22 15:12:37 · 3227 阅读 · 3 评论 -
将50本书及对应想读的人数数据做成词云图
我们通过数据操作获得了最热的50本书以及他们的粉丝数(想读这本书的人数),为了可视化地表示这50本书以及他们想读的人数,我们可以采用词云图的方法来展示。步骤如下。一、导入需要的包体。二、通过读取.csv文件,将50本书的名字和他们的想读人数生成一个元组数组。三、通过词云WordCloud函数来生成词云。四、使用render方法来渲染生成html文件。import pandas as pd...原创 2020-02-20 20:52:02 · 634 阅读 · 0 评论 -
pd.read_csv方法读csv文件时使用index_col参数设置第一列作为index
我现在采用read_csv()文件,修改后保存to_csv()文件的方式来对数据库进行修改,问题来了,在read_csv()的时候,系统会默认第一列是第一个字段而不是index,这样在保存的时候就会凭空多处一列index,这对于修改操作来说,显然是不可持续的,因为我们每次都希望看到边界稳定的表格。那么怎么办呢?read_csv()方法提供了index_col参数来设定DataFrame的index...原创 2020-02-13 23:06:13 · 15719 阅读 · 0 评论 -
用pandas在海量数据中找出最热的50本书和最热的10个标签
任务:找出最多人想读的50本书的名称已有数据:文件1:to_read.csv每行两个数据,用户id和该用户想读的书籍id文件2:books.csv书籍的各类id,名称,作者等信息文件3:tags.csv每行两个数据,标签id和标签名称文件4:book_tags.csv每行三个数据,goodreads_book_id(和to_read中的书籍id的对应关系可以在books.csv里...原创 2020-02-13 11:45:57 · 1005 阅读 · 0 评论 -
Pandas VS. Numpy 读取文件速度比较
准备了一个包含500多万条数据的txt文件,分别使用numpy的genfromtxt()方法和pandas的read_table()方法,对读取时间进行了计时,可以得出结论,在读取大量数据方面,panda比numpy要快一个数量级。代码如下:import numpy as npimport pandas as pdimport timestart_time = time.time()...原创 2020-02-12 22:50:16 · 2397 阅读 · 0 评论 -
python用pandas库读取excel中的文件存入DataFrame数据帧中
这个过程大致分成两步,第一步是读取excel文件,使用pd.ExcelFile方法,可以存储在类似file的变量当中,第二步是把file中的内容用file.parse()方法解析至data中,转换成一个DataFrame数据帧。具体代码如下:import pandas as pdfile = pd.ExcelFile('students_info.xlsx')data = file.par...原创 2020-02-12 22:22:37 · 8007 阅读 · 0 评论 -
python中用.to_csv("filename")方法将DataFrame数据帧存储为.csv文件
csv文件可以读到python中的DataFrame数据帧中,同样的DF数据也可以保存到csv文件中,具体的代码如下所示:import pandas as pdimport numpy as npscores = np.random.randint(0,100,size=4)data = pd.DataFrame({ 'id':[1,2,3,4], 'students':["And...原创 2020-02-12 21:47:02 · 3362 阅读 · 0 评论 -
python用pd.read_csv()方法来读取csv文件
csv文件是一种用,和换行符区分数据记录和字段的一种文件结构,可以用excel表格编辑,也可以用记事本编辑,是一种类excel的数据存储文件,也可以看成是一种数据库。pandas提供了pd.read_csv()方法可以读取其中的数据并且转换成DataFrame数据帧。python的强大之处就在于他可以把不同的数据库类型,比如txt/csv/.xls/.sql转换成统一的DataFrame格式然后进...原创 2020-02-12 21:37:55 · 67773 阅读 · 6 评论 -
python迷你项目:8个知识点实现今日A股涨跌幅排行榜前10名股票信息
我在博文4行代码获取今日股票数据中使用tushare库进行爬取了今日股市的信息,以下的代码编写了如何通过pandas中对DF数据类型的操作找到今日股市涨幅榜和跌幅榜的前10支股票。这里需要用到的知识点有:1.用.sort_values()方法对DF数据进行排序。2.使用[‘column’]方法取DF中的某一列3.用list对Series数据转换成列表4.使用生成表达式用range方法来产...原创 2020-02-23 21:58:58 · 1788 阅读 · 0 评论 -
python高级数据分析基础知识:numpy与pandas及其基本应用总结整理
二、numpy及其基本应用总结整理Series篇2.1 创建Series数据2.1.1 Series数据的基本概念、结构与新变量的创建2.1.2 python使用字典数据生成Series数组并用isnull/notnull方法检测是否为空2.1.3 通过name属性给Series对象和索引命名2.2 读取Series数据2.2.1 python中获取Series数组中的值(单个元素或...原创 2020-02-16 21:17:39 · 1193 阅读 · 0 评论 -
DataFrame的“增删改查”之“查”:用index和column参数定位的组合查询具体某个坐标的元素
我们知道可以使用[]索引获得某一列的数据,使用loc()或者iloc()方法获得某一行的数据,那么如何根据行和列的信息获得具体某个坐标下的单个数据元素的值呢?说来其实也不难,只需要组合上面两种方法就可以了。先行后列或者先列后行都可以,如以下程序print语句中所示的那样,一共有四种语法都是可以的:import pandas as pdindex_list = ['Math','English'...原创 2020-02-13 22:05:17 · 722 阅读 · 0 评论 -
DataFrame中的groupby分组对象是个什么东东
我们经常会在DataFrame操作的时候用到groupby(column_name)方法,这个方法会根据括号中的参数,一般是字段名,来进行分组,也就是把这个字段相同的记录都分成一组,并且把他们的索引值放在一个列表当中。最终生成一个groupby的数据结构对象。我们可以通过以下代码来看groupby对象究竟是怎么存储数据的。import pandas as pddict_data = { '...原创 2020-02-13 19:57:56 · 5168 阅读 · 0 评论 -
python中用merge方法对两个DataFrame进行合并
类似于数据库,merge操作就是将两张表合并成一张表。这里需要一些数据库的知识,知道什么叫做主键、什么叫外键、什么叫一对一、一对多、多对一、多对多的数据库关系,以及合并之后的取值方式:inner/outer/left/right。简单的说,主键就是可以用来唯一区分记录的id值,一般用一个与业务无关的序列来表示。比如电脑的mac地址。外键则是这个数据表和其他数据表用来做关联的字段名。我们可以用o...原创 2020-02-12 20:28:55 · 6190 阅读 · 1 评论 -
DataFrame数据帧的多级索引
如果索引值有多个,我们可以使用多级索引的方式来查询DF数据中的数据,以图书的打分为例,有很多本书,同一本书有很多个用户打分,这样我们就可以设计一个多级索引的DF数据结构来存放这些得分,然后通过多级索引,类似.loc().iloc()这样的操作进行查询。代码如下:import pandas as pdimport numpy as npdata_list = np.random.randint...原创 2020-02-12 14:21:18 · 662 阅读 · 0 评论 -
python中DataFrame数据帧的统计方法
我们把每一个column作为一个样本数据集,就可以对其进行一些统计学方法的计算,比如求和sum、求平均mean、求方差var、求标准差std、求个数count、求最大值max、求最小值min,等操作。我们用以下代码来进行演示:import pandas as pddict_data = { 'score' :[95,98,92,89,82,93], 'gender':['M','F','M...原创 2020-02-12 13:52:46 · 906 阅读 · 0 评论