数据处理工具(一)——Matplotlib

文章目录

    • 致谢
  • 1 Matplotlib
    • 1.1 什么是Matplotlib
    • 1.2 实现一个简单的图
      • 1.3 Matplotlib三层结构
      • 1.3.1 容器层
      • 1.3.2 辅助显示层
      • 1.3.3 图像层
    • 1.3 使用模块
      • 1.3.1 画布的设置
      • 1.3.2 添加网格辅助背景
      • 1.3.3 附加属性
      • 1.3.4 标签
      • 1.3.5 刻度
      • 1.3.6 一个图上多条线
      • 1.3.7 子区域
    • 1.4 基础图表
      • 1.4.1 折线图
      • 1.4.2 散点图
      • 1.4.3 柱状图
      • 1.4.4 直方图
      • 1.4.5 饼图
      • 1.4.6 小结

致谢

Matplotlib subplot2grid()函数的详细介绍及操作实例-立地货 (lidihuo.com)

直方图和柱状图的区别有哪些_Amanda_python的博客-CSDN博客_直方图和柱状图的区别

1 Matplotlib

1.1 什么是Matplotlib

Matplotlib是一种专门用于开发2D图表的一种工具包,尽管它也能开发3D图表,但是我们很少会去使用他。我们通常用其来使数据可视化,其英文来源Matplotlib可以分解为三个单词:mat——matrix(矩阵),plot——plot(画图),lib——library(库)。其方法实际上和matlab一样。而之所以不使用matlab是因为它并不免费。

1.2 实现一个简单的图

import matplotlib.pyplot as pltplt.figure()
plt.plot([1, 0, 9], [4, 5, 6])
plt.show()

image-20220307155954408

1.3 Matplotlib三层结构

1.3.1 容器层

容器层主要由Canvas、Figure、Axes组成。其中Canvas是位于最底层的系统层,在绘图的过程中充当画板的角色,即放置画布(Figure)的工具;Figure是Canvas上方的第一层,也是需要用户来操作的应用层的第一层,在绘图的过程中充当画布的角色;而Axes是应用层的第二层,在绘图的过程中相当于画布上的绘图区的角色。

  • Figure:指整个图形(可以通过plt.figure()设置画布的大小和分辨率)
  • Axes(坐标系):数据的绘图区域
  • Axis(坐标轴):坐标系中的一条轴,包含大小限制、刻度和刻度标签

容器层的特点为:

一个figure(画布)可以包含多个axes(坐标系/绘图区),但是一个axes只能属于一个figure。

一个axes(坐标系/绘图区)可以包含多个axis(坐标轴),包含两个即为2d坐标系,3个即为3d坐标系。

总结来说,Canvas是画板、Figure是白纸,Axes是纸上面的框架。当我们想要在白纸上面画多个图像,我们可以使用plt.subplots来分区。

image-20220307161552096

1.3.2 辅助显示层

辅助显示层指的是绘图区内的除了根据数据绘制出的图像以外的内容,比如绘制风格、边框线、坐标轴、坐标名、刻度、网格线、图例、标题等。

1.3.3 图像层

在图像层中,我们可以在Axes之中使用plot、scatter、bar、histogram、pie等函数根据数据绘制出图像。

1.3 使用模块

1.3.1 画布的设置

我们从最简单的开始一步一步深入,我们想要绘制关于一周内天气的折线图。

plot方法可用于画图,其可以传入列表,当传入一个列表时,默认为y所在位置。当传入两个列表时,第一个列表为x所在位置,第二个列表为y所在位置。

import matplotlib.pyplot as pltplt.figure()
plt.plot([1, 2, 3, 4, 5, 6, 7], [17, 17, 18, 15, 11, 11, 13])
plt.show()

如果我们要设置画布的大小和画布的分辨率,我们可以在figure的有参构造器中设置。

import matplotlib.pyplot as plt
%matplotlib inlineplt.figure(figsize=(20,8),dpi = 80)
plt.plot([1, 2, 3, 4, 5, 6, 7], [17, 17, 18, 15, 11, 11, 13])
plt.show()

如果你要保存这个画布中的内容,除了可以直接右键保存图片外,还可以使用下面的方法:

import matplotlib.pyplot as plt
%matplotlib inlineplt.figure(figsize=(20,8),dpi = 80)
plt.plot([1, 2, 3, 4, 5, 6, 7], [17, 17, 18, 15, 11, 11, 13])
plt.savefig("路径")
plt.show()

需要注意的是,保存图片这个方法不可以置于show方法之后,否则show方法执行时,上述的图片资源会被释放,再用savefig保存的图片是一张空白图。

1.3.2 添加网格辅助背景

如果想要添加网格背景,可以调用plt.grid方法,其方法默认关闭,如果要开启,需要手动给构造器一个True。在打开后,grid方法还拥有多种附加属性,你可以自己查看API去添加。

import matplotlib.pyplot as plt
plt.plot([3,1,4,5,2])
plt.ylabel('grade')
plt.grid(True,linestyle = '--',alpha = 0.5)
plt.show()

1.3.3 附加属性

我们这一小节来讲讲附加属性。我们首先来看一下plot的API。

Plt.plot(x,y,format_string,**kwargs)

  • X:x轴数据,列表或者数组,可选。
  • Y:y轴数据,列表或者数组。
  • Format_string:控制曲线的格式字符串,可选
  • **kwargs:第二组或更多(x,y.format_string)

对于kwargs,可以是更多附加属性,也可以是第二组列表。

更多附加属性有:

  • linewidth:线条宽度(可取0~10,默认1.5)

  • Color:控制颜色

    ​ 控制颜色只需写对应的英文首字母即可

  • Linestyle:线条风格

  • Marker:标记风格(可取’o’'D’等20种,默认为None)

  • Markerfacecolor:标记颜色

  • Markersize:标记尺寸(取0~10的数值,默认为1)

线条风格有:

  • "-"实线
  • "–"破折线
  • "-."点划线
  • ":"虚线
  • "“无线条

线条上的标记有:

  • ","像素标记
  • "o"实习圈标记
  • "v"倒三角标记
  • "^"上三角标记
  • ">"右三角
  • "<"左三角
  • "1"下花三角
  • "2"上花三角
  • "3"左花三角
  • "4"右花三角
  • "s"实习方形
  • "p"实心五角
  • "*"星形
  • "h"竖六边形
  • "H"横六边形

字体有:

  • SimHei:黑体
  • Kaiti:楷体
  • Lisu:隶书
  • Fangsong:仿宋
  • You yaun:幼圆
  • Stsong:宋体

1.3.4 标签

我们可以为我们的折线图设置标签。

  • plt.xlabel():对x轴增加文本标签
  • plt.ylable():对y轴增加文本标签
  • plt.title():对图形整体增加文本标签
  • plt.text():对任意位置增加文本
  • plt.annotate:在图形上加上带有箭头的注解
  • plt.legend():添加图例
import matplotlib.pyplot as plt
import matplotlibmatplotlib.rcParams['font.family']='SimHei'plt.plot([3,1,4,5,2])
plt.ylabel('温度')
plt.xlabel('时间')
plt.title('某城市一周内的天气变化折线图')
plt.grid(True,linestyle = '--',alpha = 0.5)
plt.show()

需要注意的是,在输入中文标签的时候,matplotlib是不支持中文的,所以输出的图像会有空白。为了解决这个问题,我们可以使用以下的方法。

第一种方法

pyplot并不默认支持中文显示,需要rcParams修改字体实现。(可以实现,但不推荐,毕竟是全局使用)

import matplotlib.pyplot as plt
import matplotlibmatplotlib.rcParams['font.family']='SimHei'

其他属性:

Font.family:用于显示字体的名字

Font.style:字体风格,正常‘normal’或斜体‘italic’

Font.size:字体大小,整数字号或者‘large’,‘x-small’

第二种方法(实测还能用)

有中文输入的地方,增加一个属性:fontproperties

Plt.xlabel('横轴:时间',fontproperties = 'SimHei',fontsize = 20)

1.3.5 刻度

我们来看一下如何给我们的图像层加上刻度。

xticks(ticks, [labels], **kwargs)

  • ticks:数组类型,用于设置X轴刻度间隔
  • [labels]:数组类型,用于设置每个间隔的显示标签
  • **kwargs:用于设置标签字体倾斜度和颜色等外观属性

1.3.6 一个图上多条线

我们如果想要在一个折现图中画出多条直线,我们可以再次使用plot,也可以在第一个plot传入第二组列表。

import matplotlib.pyplot as plt
import matplotlibmatplotlib.rcParams['font.family']='SimHei'plt.plot([3,1,4,5,2])
plt.ylabel('温度')
plt.xlabel('时间')
plt.title('一周内的天气变化折线图')
plt.grid(True,linestyle = '--',alpha = 0.5)plt.plot([2,3,1,4,5])
plt.grid(True,linestyle = '--',alpha = 0.5)plt.show()

1.3.7 子区域

工作中往往会根据业务需求,将绘制的多个图形组合到一个大图框内,形成类似仪表盘的效果。

在画布上面创建子图有很多方法,这里有四种介绍,但是三种很容易混淆。

subplots和subplot

两个参数基本一样,但是区别就是subplots是直接创建一个画布和一个或多个子图返回,而subplot添加一个子图到当前画布,它会删除前面覆盖的子图。

如果想一次性的创建多个子图,就使用subplots函数,如果想一个一个地添加子图,就使用subplot函数,这是他们的主要区别。

在如今的开发中,subplot已经被版本淘汰了,使用起来实际上很不方便,所以这里我们就不再讲解它。

matoplotlib.pyplot.subplots(nrow = 1,ncol = 1,**fig_kw)

  • 作用:创建一个带有多个axes的图
  • return 画布figure 和 绘图区axes,对于不同的axes对象,采用的不再是plt.方法,而是使用axes.方法,且方法名不同
  • set_xticks
  • set_yticks
  • set_xlabel
  • set_ylabel

学完上面的知识后,让我们来试试下面的案例:

import matplotlib.pyplot as plt
import random
import matplotlib
matplotlib.rcParams['font.family']='SimHei'# 1 准备数据x,y
x = range(60)
y_shanghai = [random.uniform(15,18) for i in x]
y_beijing = [random.uniform(1,3) for i in x]# 2 创建画布
figure,axes = plt.subplots(nrows = 1,ncols = 2,figsize = (20,8),dpi = 80)# 3 绘制图像
axes[0].plot(x,y_shanghai,color = "r",linestyle = "-.",label = "上海")
axes[1].plot(x,y_beijing,color = "b",label = "北京")# 4 显示图例
axes[0].legend()
axes[1].legend()# 5 修改刻度
x_label = ["11点{}分".format(i) for i in x]
axes[0].set_xticks(x[::5],x_label[::5])
axes[0].set_yticks(range(0,40,5))
axes[1].set_xticks(x[::5],x_label[::5])
axes[1].set_yticks(range(0,40,5))# 6 添加网格显示
plt.grid(linestyle = "--",alpha = 0.5)# 7 添加描述信息
axes[0].set_xlabel("时间变化")
axes[0].set_ylabel("温度变化")
axes[0].set_title("上海11点到12点每分钟的温度变化状况")
axes[1].set_xlabel("时间变化")
axes[1].set_ylabel("温度变化")
axes[1].set_title("上海11点到12点每分钟的温度变化状况")# 8 显示图
plt.show()

除了上面的方法,还有下面两种:

plt.subplot2grid()

plt.subplot2grid(Gridspec,Curspec,colspan = 1,rowspan = 1,**kwargs)

  • Matplotlib subplot2grid()函数在网格的特定位置创建轴对象提供了更大的灵活性。它还允许轴对象跨越多个行或列

  • shape:指定组合图的框架形状,以元组形式传递,如2*3的矩阵可以表示成(2,3)

  • loc:指定子图所在的位置,如shape中第一行第一列可以表示成(0,0)

  • rowspan:指定某个子图需要跨几行

  • colspan:指定某个子图需要跨几列

可以用下面的例子试试手!

import matplotlib.pyplot as plt
import numpy as np
import math
# 显示中文设置...
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)
a1 = plt.subplot2grid((3,3),(0,0),colspan = 2)
a2 = plt.subplot2grid((3,3),(0,2), rowspan = 3)
a3 = plt.subplot2grid((3,3),(1,0),rowspan = 2, colspan = 2)
x = np.arange(1,10)
a2.plot(x, x*x)
a2.set_title('平方')
a1.plot(x, np.exp(x))
a1.set_title('指数')
a3.plot(x, np.log(x))
a3.set_title('log')
plt.tight_layout()
plt.show()

Gridspec类

模块gridspec是一个可以指定画布中子区位置或者说是布局的"分区"模块。在模块gridspec中,有一个类GridSpec,他可以指定网格的几何形状。

import matplotlib.gridspec as gr
import matplotlib.pyplot as plt gs = gr.GridSpec(3,3)
ax1 = plt.subplot(gs[0,:])
ax2 = plt.subplot(gs[1,:1])
ax3 = plt.subplot(gs[1:,-1])plt.show()

这里ax1,ax2,ax3是选定在子区域里面的特定区间来划分,可以通过类似于列表中的切片操作来确定所选区域。

1.4 基础图表

plt不止可以利用plot方法画出折线图,实际上,他还能画出各种数学图像,如下所示:

  • plt.plot(x,y,fmt,…):绘制一个坐标图
  • plt.boxplot(data,notch,position):绘制一个箱型图
  • plt.bar(left,height,width,bottom):绘制一个条形(柱状)图
  • plt.barh(width,bottom,left,height):绘制一个横向条形图
  • plt.polar(theta,r):绘制极坐标图
  • plt.pie(date,explode):绘制饼图
  • plt.psd(x,NFF = 256,pad_to,Fs):绘制功率谱密度图
  • plt.specgram(x,NFF = 256,pad_to,F):绘制谱图
  • plt.cohere(x,y,NFFT=256,Fs):绘制X-Y的相关性函数
  • plt.scatter(x,y):绘制散点图,其中x和y长度相同
  • plt.step(x,y,where):绘制步阶图
  • plt.hist(x,bins,normed):绘制直方图
  • plt.contour(x,y,z,n):绘制等值图
  • plt.vlines():绘制垂直图
  • plt.stem(x,y,linefmt,marterfmt):绘制柴火图
  • plt.plot_date():绘制数据日p

在下面的讲解中,我们会慢慢地去了解一些常用的图表。

1.4.1 折线图

实际上前面讲到的plot方法是可以绘制各种函数图像的,但是它常用于绘制折线图。

当我们的点使用离散的值,如离散列表或离散元组,那么其画出来的是折线图;当我们的点取得非常密集的时候,折线图就会变成一条平滑的曲线,如二次函数图像的绘制我们可以采用以下的方式:

# 1 准备x,y数据
x = np.linspace(-1,1,1000)
y = 2 * x * x# 2 创建画布
plt.figure(figsize = (20,8),dpi = 80)# 3 绘制图像
plt.plot(x,y)# 4 添加网格显示
plt.grid(linestyle = "--",alpha = 0.5)# 5 显示图像
plt.show()

image-20220308095744605

1.4.2 散点图

我们来看一下散点图的方法。

matplotlib.pyplot.scatter(x,y,s = None,c = None,marker = None,alpha = None)

  • x,y:接受array,表示x轴和Y轴对应的数据,无默认
  • s:接收数值或者一维的array,指定点的大小,若传入一维array则表示每个点的大小,默认为None

让我们来绘制一个简单的散点图吧!

import matplotlib.pyplot as plt
import numpy as np# 1 准备x,y数据
x = np.random.randn(100)
y = np.random.randn(100)# 2 创建画布
plt.figure(dpi = 80)# 3 绘制图像
plt.scatter(x,y,7) #指定点的大小为7
plt.title('Scatter') #指定图像标题# 4 展示图像
plt.show()

image-20220308100822945

1.4.3 柱状图

我们来看一下柱状图的方法。

matplotlib.pyplot.bar(left , height , alpha = 1 ,width = 0.8 , bottom = none , data = none , **kwargs)

  • left:x轴位置序列
  • height:
  • alpha:透明度
  • bottom:底部柱形变量
  • data:可以使用可被索引的对象数据类型

其他关键字参数如下:

  • color:柱形填充颜色
  • edgecolor:柱形边框颜色
  • label:标签
  • lw:柱形边框宽度

让我们来绘制一个简单的柱形图:

# 1 准备数据
movie_names = ['雷神3:诸神黄昏','正义联盟','东方快车谋杀案','降魔传']
tickets = [73853,57767,22354,15969]# 2 创建画布
plt.figure(dpi = 80)# 3 绘制柱状图
x_ticks = range(len(movie_names))
plt.bar(x_ticks,tickets,width = 0.5,color = ['b','r','g','y'])# 4 修改刻度
plt.xticks(x_ticks,movie_names)# 5 添加网格显示
plt.grid(linestyle = "--",alpha = 0.5)# 6 加标签
plt.title("各大电影票房")# 7 绘制图像
plt.show()

image-20220308105101612

当然,如果取值为负,还能画出倒影柱状图。

image-20220308111251201

1.4.4 直方图

直方图和柱状图有所区别,主要区别如下:

  • 柱状图是根据数据直接得到一个数据的结果,只是比较数据的大小,直方图是根据原数据做一个频次的分布
  • 直方图柱子无间隔,柱状图柱子有间隔
  • 直方图描述数值变量(x轴是一条线),柱状图描述分类变量(x轴是分类变量)
  • 直方图一般用来描述等距数据或等比数据,柱形图一般用来描述数据名称或顺序数据
  • 通过直方图可以观察和估计哪些数据比较集中

画直方图的方法如下:

hist (x, bins = 10,range = none,density = false,weight = none,cumulative = false,bottom = none,histtype = u’bar’,align = u’mid’,orientation = u’vertical’,rwidth = none,log = false,color = none,label = none,stacked = false,** kwargs)

  • x:直方图中数据,可以是n维数组或者n维数组序列,多维数组长度不要求一致
  • bins:划分的组数,可以传入整数或序列或auto
  • range:bins参数的边界,如果bins是第一个序列则无效,否则是(x.min(),x.max())

其他的参数就不说了,需要用再去查吧。

# 导入模块
import numpy as np
import matplotlib as plt#电影时长分布状况
# 1 准备数据
time = [131,98,125,131,124,139,113,117,128,108]# 2 创建画布
plt.figure(dpi = 80)# 3 背景网格
plt.grid(linestyle = "-",alpha = 0.5)# 4 绘制直方图
distance = 2
group_num = (max(time)-min(time))/distanceplt.hist(time)# 5 修改刻度
plt.xticks(range(min(time),max(time),distance))# 7 显示图像
plt.show()

1.4.5 饼图

让我们看一下饼图绘图的方法。

pie函数各类详解:

参数

  • X:指定绘图的数据
  • Explode:指定饼图某些部分的突出显示,即呈现爆炸式
  • Labels:为饼图添加标签说明,类似于图例说明
  • Colors:指定饼图的填充色
  • Autopct:自动添加百分比显示,可以采用格式化的方法显示
  • Pctdistance:设置百分比标签和圆心的距离
  • Shadow:是否添加饼图的阴影效果
  • Labeldistance:设置各个扇形标签(图例)与圆心的距离
  • Startangle:设置饼图的初始摆放角度
  • Radius:设置饼图的半径大小
  • Counterclock:是否让饼图按逆时针顺序呈现
  • Wedgeprops:设置饼图内外边界的属性,如边界线的粗细、颜色等
  • Textprops:设置饼图中文本的属性,如字体大小、颜色等
  • Center:指定饼图的中心点位置,默认为原点
  • Frame:是否要显示饼图后面的图框,如果是Ture,需要同时控制图框x轴,y轴的范围和饼图的中心位置

让我们来试一试!

import matplotlib.pyplot as plt
labels = 'Frog','Hogs','Dogs','Logs'
sizes = [15,30,45,10]
explode = (0,0.1,0,0)
plt.pie(sizes,explode = explode,labels = labels,autopct = '%1.1f%%',shadow = False,startangle = 90)
plt.show()

image-20220308125944244

让我们搞一个更复杂的!

import matplotlib.pyplot as plt# 1 修正全局中文
matplotlib.rcParams['font.family']='SimHei'# 2 传入数据
labels = u'汽车',u'火车',u'轮船',u'单车',u'自行车',u'步行'
sizes = [15,14,16,25,20,10]# 3 指定各部分数据在饼图的颜色
color = 'r','g','y','b','w','p'# 4 设定饼图突出部分
explode = (0,0.2,0,0,0,0)# 5 绘制饼图
plt.pie(sizes,explode = explode,labels = labels,autopct = '%1.1f%%',shadow = True,startangle = 90)# 6 使xy同方向延伸
plt.axis('equal')# 7 设置标题
plt.title('你认为别人去学校采用什么方式',fontproperties = 'SimHei',fontsize = 20)# 8 设置图例
plt.legend()# 9 显示饼图
plt.show()

image-20220308130039292

1.4.6 小结

除了以上的图形以外,其他的图就不再概述了,因为很少用到。至于如果你想进入更深入的学习,你可以进入官方文档。上面的工具应该在你平时学习其他有关于数据的东西时应不停地使用它,以免遗忘。你要明确的一点是:这一讲讲的是工具,而不是什么理论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java解析Rss(三)

2019独角兽企业重金招聘Python工程师标准>>> package com.ninemax.application.rss;import java.net.URL; import java.text.SimpleDateFormat; import java.util.List;import com.sun.syndication.feed.synd.SyndCategory; import com.sun.syndication.feed.synd.S…

Redis服务器启动之后3个警告信息的解决方案

今天是年前最后一篇文章了&#xff0c;不想写太多的东西&#xff0c;就写一些有关Redis相关问题的解决方案。当我们启动了Redis服务器之后&#xff0c;会看到3个警告&#xff0c;如果没看到&#xff0c;那是很好的&#xff0c;但是我看到了。看到了就不能不管&#xff0c;所以就…

ASP .NET MVC 之Entity Framework入门教程及源码

本文主要的目的是 1. 说明Entity Framework Power Tools如何使用。 2. Entity Framework 快速门 实验环境&#xff1a; OS: Windows Server 2012, Windows 7 DE: VS2013 MVC 6.0Entity Framework SQL Server 2012 准备工作 基于现有数据库生成POCO数据类和数据库上下文需要借…

机器学习的练功方式(六)——朴素贝叶斯

文章目录致谢6 朴素贝叶斯6.1 概述6.2 概率论6.2.1 大数定律6.2.2 基本概念6.2.3 极大似然估计6.2.4 多项式分布6.2.4.1 伯努利分布6.2.4.2 二项分布6.2.5 朴素贝叶斯6.3 朴素贝叶斯文本分类6.3.1 一个例子6.3.2 拉普拉斯平滑系数6.3.3 算法实现6.4 贝叶斯分类器6.4.1 多项式贝…

ABAP中创建动态内表的三种方法(转载)

BAP中创建动态内表的三种方法 第一种&#xff1a; 如果我们需要的动态内表字段或者动态工作区和数据字典中的类型一致&#xff0c;可以直接使用CREATE DATA生成,当然也可以是自定义类型。 比如要产生和数据表MARA结构一致的动态内表&#xff1a; DATA : DY_TABLE TYPE REF TO D…

个人简介

我叫范华万&#xff0c;今天22岁&#xff0c;来自于福建省。目前在闽江学院就学。我学的是软件工程软件服务开发专业&#xff0c;能从事网站设计、java工程师、ps技术、c、数据库管理。本人性格乐观、开朗&#xff0c;有上进心、进取心&#xff0c;对学习认真负责&#xff0c;I…

数据库杂谈(八)——查询优化

文章目录8 查询优化8.1 概述8.2 查询数和语法树8.3 代数优化8.4 物理优化8.5 连接操作优化8.5.1 嵌套循环法8.5.2 利用B树索引或哈希索引寻找匹配元组法8.5.3 散列连接法8.6 后话8 查询优化 8.1 概述 我们不管是在数据库软件如MySQL、SQLServer等&#xff0c;还是通过应用程序…

Android-入门学习笔记-使用 CursorLoader 加载数据

3 使用这个代码片段开始练习 也可以参考 Codepath 教程 高级内容补充: 你是否在思考ArrayAdapter’s 的 getView() 方法和CursorAdapter 的 newView() 和 bindView() 方法? 你可以查看 CursorAdapter 类的源码. getView() 方法依然存在, 但是它实际根据是否存在列表项能够被循…

逆向思维求素数

1 #include <stdio.h>2 3 int main(void)4 {5 const int len 100;6 int prime[len];7 for (int i0; i<len; i)8 prime[i] 1; // 1 标记这个序号数为素数&#xff0c;0标记为非素数9 for (int x2; x<len; x) 10 { 11 for (in…

在 Angularjs 中 ui-sref 和 $state.go 如何传递参数

1 ui-sref、$state.go 的区别 ui-sref 一般使用在 <a>...</a>&#xff1b; <a ui-sref"message-list">消息中心</a> $state.go(someState)一般使用在 controller里面&#xff1b; .controller(firstCtrl, function($scope, $state) {$state.…

机器学习的练功方式(七)——决策树

文章目录致谢7 决策树7.1 认识决策树7.2 决策树原理7.3 信息论7.3.1 信息熵7.3.1.1 熵7.3.1.2 信息7.3.1.3 信息熵7.3.2 信息增益7.4 决策树实现7.5 决策图7.6 后话致谢 信息熵是什么&#xff1f; - 知乎 (zhihu.com) 没有免费午餐定理_百度百科 (baidu.com) 7 决策树 决策树(…

[BZOJ3583]杰杰的女性朋友(矩阵快速幂)

杰杰的女性朋友 时间限制&#xff1a;10s 空间限制&#xff1a;256MB 题目描述 杰杰是魔法界的一名传奇人物。他对魔法具有深刻的洞察力&#xff0c;惊人的领悟力&#xff0c;以及令人叹为观止的创造力。自从他从事魔法竞赛以来&#xff0c;短短几年时间&#xff0c;就已经…

13.程序集篇

1.定义 程序集是.net框架应用程序生成块&#xff0c;它包含编译好的代码逻辑单元。 2.结构 程序集有描述他的程序清单、类型元数据&#xff0c;MSIL代码和资源组成。 程序集清单&#xff1a; 每一个程序集都包含描述该程序集中的各个元素彼此如何关联的数据集合。程序集清单包含…

机器学习的练功方式(八)——随机森林

文章目录致谢8 随机森林8.1 引入8.2 决策森林8.2.1 集成学习方法8.2.2 什么是随机森林8.2.3 无偏估计8.2.4 决策森林原理过程8.2.5 决策森林算法实现8.3 总结致谢 如何理解无偏估计&#xff1f;无偏估计有什么用&#xff1f;什么是无偏估计&#xff1f;_司南牧|知乎|博客|易懂教…

E20180219-hm-xa

comparison n. 比较&#xff0c;对照; [语] 比喻; 比较级; conjunction n. 连接; 连词; 联合&#xff0c;结合物; &#xff08;恒星、行星等的&#xff09; 合; [例句] assignment n. 分给&#xff0c;分配; 任务&#xff0c;工作&#xff0c;&#xff08;课外&#xff09;作…

这是我看过最精彩的回答

或许我没见过世面&#xff0c;但是这却是我看过对“怎么成为一个优秀的程序员&#xff0c;而不是一个优秀的码农&#xff1f;”最精彩的回答【全部复制粘贴】 其实我的心一直因为现在的工作【餐饮服务】而动摇&#xff0c;忽而想学网站&#xff0c;忽而c语言根基&#xff0c;忽…

免费LInux主机资源

一、m-net.arbornet.org注冊 &#xff08;1&#xff09;telnet m-net.arbornet.org vista系统默认是关闭telnet的&#xff08;由于不安全&#xff09;&#xff0c;须要开启。cmd->telnet&#xff08;2&#xff09;login:newuser password: (3) ssh m-net.arbornet.org vi的…

并行计算(一)——并行计算机系统及结构模型

致谢 SMP、COW、PVP、MPP计算机相关_神.秘.人的博客-CSDN博客_并行向量处理机 1 并行计算机系统及结构模型 1.1 并行计算 在下面的讲解之前&#xff0c;我们先看一下并行计算的量纲。 1.1.1 并行计算和计算机科学 随着计算机和计算机学科的发展&#xff0c;所有的学科都转向…

十、input与跳转

1.在loginAction&#xff0c;新增result <action name"LoginAction" method"login" class"com.myz.action.LoginAction"><!-- result不配置name表示默认为success,配置了name值则将与action中返回的字符串对应 --><result>/lo…

【机器学习实战】极大似然法

2019独角兽企业重金招聘Python工程师标准>>> http://baike.baidu.com/link?url3Ej1VIItwWd35sXeoRWRhcJkJLCFvzPzNIoTkAfai8ZIS4Ppcch4_maQ25FjNCU1Eplsp4k3oPKLyv6VIsPhsq 一、 最大似然法是一种具有理论性的点估计法&#xff0c;基本思想是&#xff0c;当从模型…