Fiddler基本使用
fiddler的核心作用 接口测试 发送自定义的请求,模拟小型接口测试 定位前后端bug 抓取协议包,前后端联调 弱网测试 模拟限速操作,弱网,断网 构建模拟测试场景 数据篡改,重定向 前端性能分析及优化 fiddler的工作原理 本地应用与服务器之间的所有请求(request)和响应(response),由fiddler进行转发,此时fiddler以代理服务器的方式存在 由于所有的网络数据都需要经过fiddler,因此,fiddler能够截取数据信息,实现网络数据抓包 fiddler和F12抓包对比 相同点: 都可以对http和https请求进行抓包分析 不同点: F12无法抓取app端的请求,而fiddler工具可以完成 F12无法修改请求数据,请求之前和请求之后,而fiddler工具可以完成 F12可以在console控制台输入部分命令,方便查看前端的数据信息,可以通过application上面查看一些请求的数据,尤其是涉及到登录或者邀请相关的知识 fiddler基本功能使用导包 File - Export...
Seaborn案例分析
本文将租房网站上北京地区的租房数据作为参考,运用前面所学到的数据分析知识,带领大家一起来分析真实数据,并以图表的形式得到以下统计指标: (1)统计每个区域的房源总数量,并使用热力图分析房源位置分布情况 (2)使用条形图分析哪种户型的数量最多、更受欢迎 (3)统计每个区域的平均租金,并结合柱状图和折线图分析各区域的房源数量和租金情况 (4)统计面积区间的市场占有率,并使用饼图绘制各区间所占的比例 基本数据介绍将爬到的数据下载到本地,并保存在“链家北京租房数据.csv”文件中,打开该文件后可以看到里面有很多条(本案例爬取的数据共计8224条)信息,具体如下图所示: 数据读取准备好数据后,我们便可以使用 Pandas读取保存在CSV文件的数据,并将其转换成DataFrame对象展示便于后续操作这些数据。 首先,读取数据: 123456import pandas as pdimport numpy as np# 读取链家北京租房信息file_data =...
Seaborn分类数据绘图
数据集中的数据类型有很多种,除了连续的特征变量之外,最常见的就是类别型的数据了,比如人的性别、学历、爱好等,这些数据类型都不能用连续的变量来表示,而是用分类的数据来表示。 Seaborn针对分类数据提供了专门的可视化函数,这些函数大致可以分为如下三种: 分类数据散点图: swarmplot()与 stripplot()。 类数据的分布图: boxplot()与 violinplot()。 分类数据的统计估算图: barplot()与 pointplot()。 类别散点图通过 stripplot()函数可以画一个散点图, stripplot0函数的语法格式如下。 1n.stripplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, jitter=False) 上述函数中常用参数的含义如下: (1)x,y,hue: 用于绘制长格式数据的输入。 (2)data: 用于绘制的数据集。如果x和y不存在,则它将作为宽格式,否则将作为长格式。 (3)jitter:...
Seaborn绘制统计图形
Matplotlib虽然已经是比较优秀的绘图库了,但是它有个今人头疼的问题,那就是API使用过于复杂,它里面有上千个函数和参数,属于典型的那种可以用它做任何事,却无从下手。 Seaborn基于 Matplotlib核心库进行了更高级的API封装,可以轻松地画出更漂亮的图形,而Seaborn的漂亮主要体现在配色更加舒服,以及图形元素的样式更加细腻。 不过,使用Seaborn绘制图表之前,需要安装和导入绘图的接口,具体代码如下: 12# 安装pip3 install seaborn 12# 导入import seaborn as sns 可视化数据的分布当处理一组数据时,通常先要做的就是了解变量是如何分布的。 对于单变量的数据来说 采用直方图或核密度曲线是个不错的选择 对于双变蚩来说,可采用多面板图形展现,比如 散点图、二维直方图、核密度估计图形等。 针对这种情况,Seaborn库提供了对单变量和双变量分布的绘制函数,如...
pandas高级使用
如何处理nan 获取缺失值的标记方式(NaN或者其他标记方式) 如果缺失值的标记方式是NaN 判断数据中是否包含NaN: pd.isnull(df) pd.notnull(df) 存在缺失值nan: 1、删除存在缺失值的: dropna(axis=’rows’) 注: 不会修改原数据,需要接受返回值 2、替换缺失值: fillna(value, inplace=True) value:替换成的值 inplace: True: 会修改原数据,False: 不替换修改原数据,生成新的对象 如果缺失值没有使用NaN标记,比如使用“?” 先替换“?”为np.nan,然后继续处理 电影数据的缺失值处理 电影数据文件获取 123# 读取电影数据movie = pd.read_csv("./data/IMDB-Movie-Data.csv"...
pandas读写数据操作拓展
读写exce文件 Excel文件也是比较常见的用于存储数据的方式,它里面的数据均是以二维表格的形式显示的,可以对数据进行统计、分析等操作。Excel的文件扩展名有xls和xlsx两种。 Pandas中提供了对Excel文件进行读写操作的方法,分别为to_excel()方法和 read_excel()函数,关于它们的操作具体如下: 使用 to_excel()方法写入Exce文件to_excel()方法的功能是将 Dataframe对象写入到 Excel工作表中,该方法的语法格式如下: 1234to_excel(excel_writer, sheet_name='sheetl', na_rep='', index=True) 上述方法中常用参数表示的含义如下: (1)excel_writer: 表示读取的文件路径 (2)sheet_name: 表示工作表的名称,可以接收字符串,默认为“ Sheet1” (3)na_rep: 表示缺失数据 (4)index:...
pandas基础使用
为了更好的理解这些基本操作,我们将读取一个真实的股票数据。关于文件操作,后面在介绍,这里只先用一下API。 12345# 读取文件data = pd.read_csv("./data/stock_day.csv" )# 删除一些列,让数据更简单些,再去做后面的操作data = data.drop(["ma5" ,"ma10","ma20" ,"v_ma5","v_ma10" ,"'v_ma20"], axis=1) 索引操作Numpy当中我们已经讲过使用索引选取序列和切片选择,pandas也支持类似的操作,也可以直接使用列名、行名称,甚至组合使用。 直接使用行列索引(先列后行)获取’2018-02-27”这天的’close’的结果 123456789# 直接使用行列索引名字的方式 (先列后行)data['open']['2018-02-27']23.53# 不支持的操作#...
Linux相关命令
查看目录命令 命令 说明 ls 查看当前路径下的目录信息 tree 以树状方式显示目录 pwd 查看当前目录路径 clear 清除终端内容 ctrl + shift + “+” 放大窗口字体 ctrl + “-“ 缩小窗口字体 切换目录命令 命令 说明 cd 目录 切换到指定目录 cd ~ 切换到当前用户的主目录 cd .. 切换到上一级目录 cd . 切换到当前目录 cd - 切换到上一次目录 创建、删除文件和目录命令 命令 说明 touch 文件名 创建指定文件 mkdir 目录名 创建目录(文件夹) rm 文件名 删除指定文件 rmdir 目录名 删除空目录 提示: 1、删除非空目录: rm 非空目录名 -r 2、-r: 递归删除目录及其内容 复制、移动文件和目录命令 命令 说明 cp 复制(拷贝)文件、拷贝目录 mv 移动文件、移动目录、重命名 终端命令格式的组成终端命令格式说明command [-options] [parameter] command:...
pandas数据结构
Pandas的介绍 2008年WesMcKinney开发出的库 专门用于数据挖掘的开源python库 以Numpy为基础,借力Numpy模块在计算方面性能高的优势 基于matplotlib,能够简便的画图 独特的数据结构 pandas的优势Numpy已经能够帮助我们处理数据,能够结合matplotib解决部分数据展示等问题,那么pandas学习的目的在什么地方呢? 增强图表可读性 回忆我们在numpy当中创建学生成绩表样式: 返回结果: 12345678910array([[92,55,78,50,50], [71,76,50,48,96], [45,84,78,51,68], [81,91,56,54,76], [86,66,77,67,95], [46,86,56,61,99], [46,95,44,46,56], [80,50,45,65,57], [41,93,90,41,97], ...
ndarray的基本操作
数组的索引、切片一维、二维、三维的数组如何索引? 直接进行索引,切片 对象[:, :] –先行后列 二维数组索引方式: 举例: 获取第一个股票的前3个交易日的涨跌幅数据 12# 二维的数组,两个维度stock_change[0, 0:3] 返回结果: 1array([-0.03862668, -1.46128096, -0.75596237]) 三维数组索引方式: 12345678# 三维a1 = np.array([[[1,2,3], [4,5,6]], [[12,3,34], [5,6,7]]])# 返回结果array([[[1,2,3], [4,5,6]], [[12,3,34], [5,6,7]]])# 索引、切片>>> a1[0,0,1] # 输出:2 形状修改ndarray.reshape(shape, order) 返回一个具有相同数据域,但shape不一样的视图 行、列不进行互换 123# 在转换形状的时候,一定要注意数组的元素匹配stock_change.reshape([5,...
N维数组-ndarray
ndarray的使用ndarray的属性数组属性反映了数组本身固有的信息。 属性名字 属性解释 ndarray.shape 数组维度的元组 ndarray.ndim 数组维数 ndarray.size 数组中的元素数量 ndarray.itemsize 一个数组元素的长度(字节) ndarray.dtype 数组元素的类型 ndarray的形状首先创建一些数组。 1234# 创建不同形状的数组>>> a = np.array([[1,2,3],[4,5,6]])>>> b = np.array([1,2,3,4])>>> c = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]]) 分别打印出形状。 1234567>>> a.shape>>> b.shape>>> C.shape(2,3) # 二维数组(4,) # 一维数组(2,2,3) #...
认识Numpy
Numpy介绍Numpy(Numerical Python)是一个开源的Python科学计算库,用于快速处理任意维度的数组。 Numpy支持常见的数组和矩阵操作。对于同样的数值计算任务,使用Numpy比直接使用Python要简洁的多。 Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。 ndarray介绍1NumPy provides an N-dimensional array type, the ndarray, which describes a collection of "items" of the same type. NumPy提供了一个N维数组类型ndarray,它描述了相同类型的“items”的集合。 用ndarray进行存储: 1234567891011121314import numpy as np# 创建ndarrayscore = np.array([[80, 89, 86, 67, 79],[78, 97, 89, 67, 81],[90, 94, 78, 67, 74],[91, 91,...
Matplotlib常见图像绘制
Matplotlib能够绘制折线图、散点图、柱状图、直方图、饼图。 我们需要知道不同的统计图的意义,以此来决定选择哪种统计图来呈现我们的数据。 常见图形种类及意义 折线图:以折线的上升或下降来表示统计数量的增减变化的统计图。 特点:能够显示数据的变化趋势,反映事物的变化情况。(变化) api: plt.plot(x, y) 完整代码: 123456789101112131415161718import matplotlib.pyplot as pltimport numpy as np# 0.准备数据x = np.linspace(0, 8, 1000)y = np.linspace(0, 8, 1000)# 1.创建画布plt.figure(figsize=(20, 8), dpi=100)# 2.绘制函数图像plt.plot(x, y)# 2.1 添加网格显示plt.grid()#...
hexo+butterfly 导航栏居中
分离搜索与菜单栏找到并打开后面路径,...\themes\butterfly\layout\includes\header\nav.pug,直接使用下面的代码替代源代码。 1234567891011121314151617181920nav#nav span#blog-info a.nav-site-title(href=url_for('/')) if theme.nav.logo img.site-icon(src=url_for(theme.nav.logo) alt='Logo') if theme.nav.display_title span.site-name=config.title if globalPageType === 'post' a.nav-page-title(href=url_for('/')) span.site-name=(page.title || config.title) ...