当前位置:首页>开发>正文

知识图谱怎样入门 如何用python绘制各种图形

2023-05-15 18:19:40 互联网 未知 开发

 知识图谱怎样入门 如何用python绘制各种图形

知识图谱怎样入门

知识图谱作为一门学问,绝不是用个图数据库写几条查询,或者用规则写一个表格的提取,就可以称为成功的运用的。和所有的学科一样,都需要长期的艰苦的努力,在充分了解前人成果的基础上,才有可能做出一点点成绩。
知识图谱作为人工智能(AI)的一个分支,和AI的其他分支一样,它的成功运用,都是需要知道它的所长,更需要知道它的所短的。特别是AI各个学派林立,经验主义(机器学习)、连接主义(神经网络)、理性主义(知识工程)、行为主义(机器人)各个方法的优劣,倘若不能有纵览的理解,也难以做正确的技术选型,往往盲目相信或者排斥一种技术。AI是一个极端需要广阔视野的学科。
知识图谱涉及知识提取、表达、存储、检索一系列技术,即使想有小成,也需要几年的功夫探索。如下所列,应该是每个知识图谱从业者都应该了解的一些基本功:
知道Web的发展史,了解为什么互联和开放是知识结构形成最关键的一件事。(我把这个列第一条,是我的偏见——但我认为这是最重要的一个insights)
知道RDF,OWL,SPARQL这些W3C技术堆栈,知道它们的长处和局限。会使用RDF数据库和推理机。
了解一点描述逻辑基础,知道描述逻辑和一阶逻辑的关系。知道模型论,不然完全没法理解RDF和OWL。
了解图灵机和基本的算法复杂性。知道什么是决策问题、可判定性、完备性和一致性、P、NP、NExpTime。
最好再知道一点逻辑程序(Logic Programming),涉猎一点答集程序(Answer Set Programming),知道LP和ASP的一些小工具。这些东西是规则引擎的核心。如果不满足于正则表达式和if-then-else,最好学一点这些。

如何用python绘制各种图形

1.环境
系统:windows10
python版本:python3.6.使用的库:matplotlib,numpy
2.numpy库产生随机数几种方法
import numpy as np
numpy.random
rand(d0, d1, ..., dn)    
In [2]: x=np.random.rand(2,5)
In [3]: x
Out[3]:
array([[ 0.84286554,  0.50007593,  0.66500549,  0.97387807,  0.03993009],
[ 0.46391661,  0.50717355,  0.21527461,  0.92692517,  0.2567891 ]])

randn(d0, d1, ..., dn)查询结果为标准正态分布

In [4]: x=np.random.randn(2,5)
In [5]: x
Out[5]:
array([[-0.77195196,  0.26651203, -0.35045793, -0.0210377 ,  0.89749635],
[-0.20229338,  1.44852833, -0.10858996, -1.65034606, -0.39793635]])
randint(low,high,size)    
生成low到high之间(半开区间 [low, high)),size个数据
In [6]: x=np.random.randint(1,8,4)
In [7]: x
Out[7]: array([4, 4, 2, 7])
random_integers(low,high,size)    
生成low到high之间(闭区间 [low, high)),size个数据
In [10]: x=np.random.random_integers(2,10,5)
In [11]: x
Out[11]: array([7, 4, 5, 4, 2])
3.散点图
x x轴
y y轴
s   圆点面积
c   颜色
marker  圆点形状
alpha   圆点透明度                #其他图也类似这种配置
N=50# height=np.random.randint(150,180,20)# weight=np.random.randint(80,150,20)
x=np.random.randn(N)
y=np.random.randn(N)
plt.scatter(x,y,s=50,c=r,marker=o,alpha=0.5)
plt.show()


4.折线图

x=np.linspace(-10000,10000,100) #将-10到10等区间分成100份
y=x**2 x**3 x**plt.plot(x,y)
plt.show()
折线图使用plot函数

5.条形图
N=y=[20,10,30,25,15]
y1=np.random.randint(10,50,5)
x=np.random.randint(10,1000,N)
index=np.arange(N)
plt.bar(left=index,height=y,color=red,width=0.3)
plt.bar(left=index 0.3,height=y1,color=black,width=0.3)
plt.show()


orientation设置横向条形图
N=y=[20,10,30,25,15]
y1=np.random.randint(10,50,5)
x=np.random.randint(10,1000,N)
index=np.arange(N)# plt.bar(left=index,height=y,color=red,width=0.3)# plt.bar(left=index 0.3,height=y1,color=black,width=0.3)#plt.barh() 加了h就是横向的条形图,不用设置orientation
plt.bar(left=0,bottom=index,width=y,color=red,height=0.5,orientation=horizontal)
plt.show()
6.直方图
m1=100
sigma=20
x=m1 sigma*np.random.randn(2000)
plt.hist(x,bins=50,color="green",normed=True)
plt.show()
# #双变量的直方图# #颜色越深频率越高# #研究双变量的联合分布
#双变量的直方图#颜色越深频率越高#研究双变量的联合分布
x=np.random.rand(1000) y=np.random.rand(1000) plt.hist2d(x,y,bins=40)
plt.show()


7.饼状图
#设置x,y轴比例为1:1,从而达到一个正的圆
#labels标签参数,x是对应的数据列表,autopct显示每一个区域占的比例,explode突出显示某一块,shadow阴影
labes=[A,B,C,D]
fracs=[15,30,45,10]
explode=[0,0.1,0.05,0]#设置x,y轴比例为1:1,从而达到一个正的圆
plt.axes(aspect=1)#labels标签参数,x是对应的数据列表,autopct显示每一个区域占的比例,explode突出显示某一块,shadow阴影
plt.pie(x=fracs,labels=labes,autopct="%.0f%%",explode=explode,shadow=True)
plt.show()


8.箱型图
import matplotlib.pyplot as pltimport numpy as npdata=np.random.normal(loc=0,scale=1,size=1000)#sym 点的形状,whis虚线的长度plt.boxplot(data,sym="o",whis=1.5)plt.show()
#sym 点的形状,whis虚线的长度

最新文章