
Python数据分析
Python数据分析:涉及Numpy,pandas,scipy,matplotlib,sklearn2
二叉叔
我的博客只是我部分学习过程中的笔记,水平有限,不足之处还请多多批评指教,如果能帮到您那再好不过了。
展开
-
python统计文章中高频词汇并生成词云
LZ的同事写的文章经常被公司或者上级部门发表,LZ对此觉得同事写的文章一定有什么套路或者经常使用的词句,所以LZ收集了6篇同事的文章希望统计出其文章的高频词语以此可以效仿。首先原创 2021-06-19 16:21:20 · 7322 阅读 · 2 评论 -
数据分析笔记Matplotlib(9)-多组坐标
import matplotlib.pyplot as pltimport numpy as npx = np.arange(0, 10, 0.1)y1 = 0.05 * x**2y2 = -1 * y1fig, ax1 = plt.subplots()ax2 = ax1.twinx() #与ax1对称的坐标系ax1.plot(x, y1, 'g-') ax1.set_xlabel('X data')ax1.set_ylabel('Y1 data', color='..原创 2020-09-16 23:07:38 · 322 阅读 · 0 评论 -
数据分析笔记Matplotlib(8)-图中图
import matplotlib.pyplot as plt# 窗口fig = plt.figure()x = [1, 2, 3, 4, 5, 6, 7]y = [1, 3, 4, 2, 5, 8, 6]#大图左下角的位置以及宽高的百分比left, bottom, width, height = 0.1, 0.1, 0.8, 0.8ax1 = fig.add_axes([left, bottom, width, height])#大图添加入窗口ax1.plot(x, y, 'r..原创 2020-09-16 22:53:34 · 255 阅读 · 0 评论 -
数据分析笔记Matplotlib(7)-Subplot 多图分隔显示
import matplotlib.pyplot as pltplt.figure()"""创建第1个小图, (3,3)表示将整个图像窗口分成3行3列, (0,0)表示从第0行第0列开始作图,colspan=3表示此小图跨3列, rowspan=1表示行的跨度为1. colspan和rowspan默认跨度为1且为缺省值. """ax1 = plt.subplot2grid((3,3),(0,0),colspan=3)ax1.plot([1,2], [1,2]) # 第一个小图两个..原创 2020-09-16 17:44:06 · 1506 阅读 · 0 评论 -
数据分析笔记Matplotlib(6)-Subplot 多图组合显示
import matplotlib.pyplot as pltplt.figure() #创建窗口#把窗口平分成四个等大的小窗口plt.subplot(2,2,1)#将整个图像窗口分为2行2列, 当前位置为1plt.plot([0,1],[0,1])#使用plt.plot([0,1],[0,1])在第1个位置创建一个小图.plt.subplot(2,2,2) #将整个图像窗口分为2行2列, 当前位置为2. plt.plot([0,1],[0,2])#使用plt.plot([0,1],[..原创 2020-09-14 23:00:06 · 396 阅读 · 0 评论 -
数据分析笔记Matplotlib(5)-Scatter 散点图、Bar 柱状图、Contours 等高线图、Image 图片、3D 数据
散点图:import matplotlib.pyplot as pltimport numpy as npn = 1024 X = np.random.normal(0, 1, n) # X值,平均数是0,方差是1Y = np.random.normal(0, 1, n) # Y值T = np.arctan2(Y,X) # 每个点的颜色plt.scatter(X, Y, s=75, c=T, alpha=0.5)#x,y,大小,颜色,透明度plt.xlim(-1.5, ..原创 2020-09-14 22:17:03 · 560 阅读 · 0 评论 -
数据分析笔记Matplotlib(4)-tick 能见度
import matplotlib.pyplot as pltimport numpy as np"""当图片中的内容较多,相互遮盖时,我们可以通过设置相关内容的透明度来使图片更易于观察"""x = np.linspace(-3, 3, 50)y = 0.1*xplt.figure()# 在 plt 2.0.2 或更高的版本中, 设置 zorder 给 plot 在 z 轴方向排序plt.plot(x, y, linewidth=10, zorder=1)plt.ylim(-2,..原创 2020-09-13 23:31:56 · 370 阅读 · 0 评论 -
数据分析笔记Matplotlib(3)-Annotation 图像标注
import matplotlib.pyplot as pltimport numpy as npx = np.linspace(-3, 3, 50)y = 2*x + 1plt.figure(num=1, figsize=(8, 5),)ax = plt.gca()ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')ax.spines['top'].set_color('none')ax.x..原创 2020-09-13 22:54:48 · 339 阅读 · 0 评论 -
数据分析笔记Matplotlib(2)-Legend图像描述
import matplotlib.pyplot as pltimport numpy as npx = np.linspace(-3, 3, 50)y1 = 2*x + 1y2 = x**2plt.figure()plt.xlim((-1, 2))plt.ylim((-2, 3))new_sticks = np.linspace(-1, 2, 5)plt.xticks(new_sticks)plt.yticks([-2, -1.8, -1, 1.22, 3], ..原创 2020-09-13 18:37:02 · 281 阅读 · 0 评论 -
数据分析笔记Matplotlib(1)-基本用法(figure,设置坐标轴)
简介:1.可以绘制大量数据的线图、散点图、等高线图、条形图、柱状图。。。 2.使用前请先安装Matplotlib包import matplotlib.pyplot as pltimport numpy as npx = np.linspace(1, 10, 20) #生成x坐标范围1-10之间的20个数据y1 = 2*x + 1 #生成与x对应的y1值y2 = x**2 #生成y2值为x的平方plt.figure(num=1, figsize=(8...原创 2020-09-13 17:46:00 · 1994 阅读 · 0 评论 -
数据分析Pandas(7)-plot 绘图
import pandas as pdimport numpy as npimport matplotlib.pyplot as plt# 随机生成1000个数据data = pd.Series(np.random.randn(1000),index=np.arange(1000)) # 累加这个数据,使图像更加明显data.cumsum()# pandas 数据可以直接观看其可视化形式data.plot() #如果是多组数据,可以添加x=,y=,...等坐标,生成多维图像plt...原创 2020-09-13 00:03:09 · 782 阅读 · 0 评论 -
数据分析Pandas(6)-数据合并 concat、merge
import pandas as pdimport numpy as np#定义数据a= pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'],index=[1,2,3])b= pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'], index=[2,3,4])c= pd.DataFrame(np.ones((3,4))*2, columns=['a','b','c','d..原创 2020-09-12 23:05:43 · 262 阅读 · 0 评论 -
数据分析Pandas(5)-数据导入、导出
适用于数据导入导出的格式:import numpy as npimport pandas as pdfrom io import StringIOdata = ('col1,col2,col3\n' ...: 'a,b,1\n' ...: 'a,b,2\n' ...: 'c,d,3') ...: pd.read_csv(StringIO(data))""" col1 col2 col30 a .原创 2020-09-11 18:07:38 · 237 阅读 · 0 评论 -
数据分析Pandas(4)-处理丢失数据
import pandas as pdimport numpy as np a = pd.date_range('20130101', periods=6)b = pd.DataFrame(np.arange(24).reshape((6,4)),index=a, columns=['A','B','C','D'])b.iloc[0,1] = np.nanb.iloc[1,2] = np.nan#删除含有NAN的行或者列b.dropna( axis=0, # 0:...原创 2020-09-11 17:52:05 · 170 阅读 · 0 评论 -
数据分析Pandas(3)-设置值
import pandas as pdimport numpy as np a = pd.date_range('20130101', periods=6)b = pd.DataFrame(np.arange(24).reshape((6,4)),index=a, columns=['A','B','C','D'])#loc 和 iloc设置值b.iloc[2,2] = 123b.loc['20130101','B'] = 456#根据条件设置值b.B[b.A>4] = ..原创 2020-09-11 14:12:23 · 205 阅读 · 0 评论 -
数据分析Pandas(2)-数据选择
import pandas as pdimport numpy as npa = pd.date_range('20130101', periods=6)b = pd.DataFrame(np.arange(24).reshape((6,4)),index=a, columns=['A','B','C','D'])#简单选择print(b['A'])print(b.A)"""2013-01-01 02013-01-02 42013-01-03 82..原创 2020-09-11 13:32:19 · 225 阅读 · 0 评论 -
数据分析Pandas(1)-基础数据结构Series、DataFrame
Pandas特点:字典形式,比Numpy更加简单。Series :左边索引,右边为值。在没有指定索引的情况下会自动创建一个0到N-1的整数型索引。import pandas as pdimport numpy as npa = pd.Series([1,2,3,np.nan,4,5])print(s)"""0 1.01 2.02 3.03 NaN4 4.05 5.0"""DataFrame :表格型的数据..原创 2020-09-10 16:50:11 · 679 阅读 · 0 评论 -
数据分析Numpy(7)-数据的输入输出
genfromtxt导入数据:简而言之,genfromtxt主要运用两种循环第一个循环以字符串序列转换文件的每一行。第二个循环将每个字符串转换为适当的数据类型,考虑到缺失值的情况。genfromtxt的唯一强制参数是数据的来源。它可以是一个字符串,一串字符串或一个生成器。如果提供了单个字符串,则假定它是本地或远程文件的名称,或者带有read方法的开放文件类对象。识别的文件类型是文本文件和档案。目前,该功能可识别gzip和bz2(bzip2)档案。归档文件的类型由文件的扩展名决定:如果文件名以'.gz'.原创 2020-10-17 13:54:04 · 223 阅读 · 0 评论 -
数据分析Numpy(6)-数组之间赋值
矩阵之间以 = 赋值会产生关联性,一个矩阵中的元素的更改会导致赋值的矩阵相应元素自动更改;而以copy()方法 赋值则不会产生关联性import numpy as npa = np.arange(4)# [0, 1, 2, 3]b = ac = aa[0] = 4 #更改第一个元素值print(a) # [4, 1, 2, 3]print(b) # [4, 1, 2, 3]print(c) # [4, 1, 2, 3]#同理改变b,c也会导致a相应改变d = a.copy.原创 2020-09-09 23:41:32 · 3126 阅读 · 0 评论 -
数据分析Numpy(5)-数组分割
#导入模块,重命名为npimport numpy as np#二维数组a = np.arange(12).reshape(3,4)"""([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]"""#纵向分割print(np.split(a,2,axis=1)) #纵向等分为两个矩阵print(np.hsplit(a,2)) ##等价纵向分割写法"""[[0, 1],[4, 5],[8, 9]],[[ 2, ..原创 2020-09-09 22:36:24 · 448 阅读 · 0 评论 -
数据分析Numpy(4)-数组合并
#导入模块,重命名为npimport numpy as np#一维数组a = np.array([1,2,3]) #生成[1,2,3]数组b = np.array([4,5,6]) #生成[4,5,6]数组c = np.vstack((a,b)) #合并为二维数组[[1,2,3],[4,5,6]],即上下合并d = np.hstack((a,b)) #左右合并,[1,2,3,4,5,6]#数组的转置,注意数组不能转置,需要先转化为矩阵,即加一层括号e = a[np.newaxis,:..原创 2020-09-09 00:22:16 · 232 阅读 · 0 评论 -
数据分析Numpy(3)-索引
#导入模块,重命名为npimport numpy as np#一维数组a = np.arange(1,13) #生成[0,1,2,3,...,12]数组print(a[3]) #结果为4#二维数组b = a.reshape(3,4) #转化为三行四列的二维数组print(b[2]) #[9,10,11,12],也就是第三行(0是第一行)print(b[1][1]) #结果为5,等价于b[1,1]print(b[1,1:3]) #输出第二行第二、三列元素for row in b :..原创 2020-09-08 23:19:38 · 202 阅读 · 0 评论 -
数据分析Numpy(2)-基础运算
#导入模块,重命名为npimport numpy as npa = np.array([7,8,9,10]) #列表转化为一行四列数组b = np.arange(4) #生成[0,1,2,3]数组#一维数组上的操作c1 = a - b #对应的元素相减c2 = a + b #对应的元素相加c3 = a * b #对应的元素相乘c4 = a / b #对应的元素相除c5 = a** 2 #a中各个元素的平方c6 = 2*np.sin(a) #10倍的sin(a)print(b ..原创 2020-09-08 17:52:45 · 258 阅读 · 0 评论 -
数据分析Numpy(1)-数组及相关属性
Numpy特点:速度快、消耗资源少属性:ndim:维度 shape:行数和列数 size:元素个数例一:#导入模块,重命名为npimport numpy as nparray = np.array([[1,2,3],[2,3,4]])print(array) #列表转化为矩阵print(array.ndim) # 维度2print(array.shape) # 行数和列数(2, 3)print(array.size) # 元素个数6...原创 2020-09-08 00:05:42 · 226 阅读 · 0 评论