Python與人工智慧的關係原來是這樣的...
人工智慧掀起了世界的新一波科技浪潮,如今,你要是不懂點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吧,騷年!