人工智能掀起了世界的新一波科技浪潮,如今,你要是不懂点AI、机器学习和python都不好意思说你是现代人。
那么Python究竟和人工智能什么关系,为什么人工智能把Python也给带火了?
今天就给大家简单介绍下Python和人工智能的关系及应用,以及想要学人工智能的你,究竟需要学些什么Python的知识,先来上两张图人工智能和Python的图。
从上图可以看出,人工智能包含常用机器学习和深度学习两个很重要的模块,而下图中Python拥有matplotlib、Numpy、sklearn、keras等大量的库,像pandas、sklearn、matplotlib这些库都是做数据处理、数据分析、数据建模和绘图的库,基本上机器学习中对数据的爬取(scrapy)、对数据的处理和分析(pandas)、对数据的绘图(matplotlib)和对数据的建模(sklearn)在Python中全都能找到对应的库来进行处理。
所以,要想学习AI而不懂Python,那就相当于想学英语而不认识单词,所以,Python学起来吧。
那么要想学人工智能,想学Python,那些东西要学习呢,下面给大家简单介绍下:
首先,你要学Python如何爬取数据,你要做数据分析、数据建模,起码你要有数据,这些数据来源有多种方法,但是很多都来自网络,这就是爬虫。
爬虫:requests、scrapy、selenium、beautifulSoup,这些库都是写网络爬虫需要使用到的,好好掌握这些东西,数据就有了。
然后,有了数据就可以进行数据处理和分析了,这个时候,你需要用到数据处理的一些库。
数据处理:Numpy、scipy、pandas、matplotlib,这些库分别可以进行矩阵计算、科学计算、数据处理、绘图等操作,有了这些库,你就可以一步步开始把数据处理成你需要的格式。
接着,数据符合你的格式以后,你就需要利用这些数据进行建模了,这个时候你用到的库也有很多。
建模:nltk、keras、sklearn,这些库主要是用于自然语言处理、深度学习和机器学习的,把这些用好了,你的模型就构建出来了。
最后,如果你的项目是基于Python开发的线上系统,你还可以学一学Python的Web开发,这样,你做的模型还能直接用在线上系统。
Web开发:django、flask、tornado,这些库搞明白了,你Web开发也就搞定了。
以上只是你入门要学习人工智能所要掌握的一些基本的库,要想真正使用起来,你可能需要花费很多时间去研究和学习这里面的每一个细节。
不过,有句话叫“人生苦短,我用Python”,之所以这么说是因为Python在实现各个功能的时候要远比其他语言简练的多,很多功能在Python中只需要一行代码搞定,但是在Java中你可能需要写好多好多代码才能实现。
就拿一个简单的例子,读写文件来说吧:
Python读写文件:
//读文件
with open('readFile', 'r') as inFile:
for line in inFile.readlines():
print line
...
//写文件
with open('writeFile', 'w') as outFile:
outFile.write("...")
Java读写文件:
import java.io.InputStreamReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.File;
BufferedReader br1 = new BufferedReader(new InputStreamReader(new FileInputStream("read_file1")));
BufferedReader br2 = new BufferedReader(new FileReader("read_file2"));
String line = null;
while((line = br1.readLine())!=null){
System.out.println(line);
...
}
File outfile = new File("write_file");
if (!file.exists()){
file.createNewFile();
}
//true = append file
FileWriter fileWritter = new FileWriter(file.getName(),true);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.write(data);
bufferWritrer.flush();
bufferWritter.close();
各位学习人工智能的同胞们,你们看到了吧,就是一个简单的读写文件,Java的操作要比Python复杂太多太多!
在真实的工作中,我们需要做的事情是把大量的精力集中在数据上、数据分析和理解上,而不是花费30%-50%的时间去写代码,Python不光是提供了机器学习所需要的一切工具库,还能让你专注在数据处理和分析上,所以,要学习和进入人工智能行业的话,好好学习Python吧,骚年!