28定律是一個魔咒,也是一種態度。學習也是一樣,今天給大家介紹一種強大的科學計算庫NumPy,2分鐘可以輕鬆掌握。什麼?NumPy有什麼用?深度學習,圖像處理,機器識別,大數據分析,unity,遊戲開發,這些少了NumPy能活嗎?
NumPy是python的開源數值計算擴展庫。處理大型的矩陣,向量,列表的相關處理,極其高效,更重要的是,背後是70年來被眾多的數學家包括馮諾依曼大俠都做過貢獻的穩定高性能算法。
如此高深的東西,會不會很難?
其實,優質的科學往往應用很簡單。今天我們就給大家從0開始介紹一下NumPy的使用。
說到安裝,我提一句,昨天一個小夥伴問我安裝python的問題,他說他學習python有大半年了,我很詫異,我說你都在做什麼,他說他嘗試在windows,mac,ubuntu,等系統中使用vim,sublime,gedit,sneapy,pycharm,vscode,...... 然後大半年過去了。大半年還在如何安裝工具上打轉!
我竟無言以對。
我也看了一些老師講的課程,建議初學者用最簡單的python自帶的解釋器。我不置可否。每次說到這件事,我只想說一句,只要簡單的相信,不要複雜的懷疑,就使用pycharm吧!不要在這些事情上耗費精力。
為什麼呢?工欲善其事,必先利其器。
我們學的是python和用python實現的各種功能和軟體開發,難道在後面漫長的學習和開發過程中,我們還沒有時間好好學習一個工具嗎?我們難道不需要一個好的工具開始,讓我們儘快的進入我們要研究的內容嗎?
2005年以來,我開始使用python做數據分析和數據挖掘方面的工作,是的,深度學習就是這個領域的代表,那個時候深度學習的開發工具還沒有那麼完善。嘗試了各種開發工具。
2008年我開始使用pycharm,以後一直忠貞一心。
請大家不要猶豫,並且堅信使用pycharm吧!
好吧,言歸正傳,安裝numpy很簡單,在終端執行:
python -m pip install numpy
即可。有朋友遇到安裝的問題,大多因為網速,可以選擇國內鏡像。有需要的,我們在評論中回復給大家。
形狀所謂shape,就是比如一個矩陣是3x4的,那麼我們就可以使用下面的代碼定義
shape = (3,4)(2)
numpy的數據類型有很多。常用的比如bool布爾類型,int32 32位整數,float32 32位浮點數。我們可以定義
dtype = numpy.float32
確定為32位浮點數。numpy支持各種數據類型,在定義之前確定數據類型是一個很好的習慣。
numpy.zeros函數定義了所有值都為0的矩陣或者列表。我們可以這樣定義初始化一個0矩陣。
z=numpy.zeros(shape,dtype=numpy.float32)
這樣就生成了一個shape 結構(這裡是3x4)的矩陣,並且每個元素都是一個float32類的浮點數。
numpy.ones函數和numpy.zeros函數類似,差別就是生成一個值都等於1的矩陣,其他用法類似。
z=numpy.ones(shape,dtype=numpy.float32)
numpy的矩陣類型是ndarray。我們前面介紹了zeros和ones,我們是建議大家用他們去定義矩陣,並做一個簡單的初始化。為什麼呢?給大家說個高深的東西,就是群。0是加法群的單位元素,1是乘法群的單位元素。好吧,這個太數學了,屬於大學裡的代數學範疇。
numpy的初始化方法非常多,我為什麼只講這麼點?
原因很簡單,因為,這個是經過檢驗不容易出錯的。更重要的,在數據為對象的矩陣中,這個方法可以適用於所有場景。
數學工具,不用多說了,注意,這裡是矩陣整體運算,不是單體的,比如numpy.sin(a)表示對a的所有元素都求sin值。
可以這樣說,Matlab能處理的事NumPy就能處理。
關於NumPy的內容,涉及到整個科學界的各個領域,是工程科學,數值計算,仿真科學,數據科學,圖像處理科學等各學科的必備工具。
希望大家能從這篇文章開始,嘗試使用NumPy。
輕鬆編程,快樂生活,求贊求關注!