玩轉python不會用Numpy怎麼行?看大神分分鐘幫你脫坑

2020-08-28 張麟博士

28定律是一個魔咒,也是一種態度。學習也是一樣,今天給大家介紹一種強大的科學計算庫NumPy,2分鐘可以輕鬆掌握。什麼?NumPy有什麼用?深度學習,圖像處理,機器識別,大數據分析,unity,遊戲開發,這些少了NumPy能活嗎?



NumPy是python的開源數值計算擴展庫。處理大型的矩陣,向量,列表的相關處理,極其高效,更重要的是,背後是70年來被眾多的數學家包括馮諾依曼大俠都做過貢獻的穩定高性能算法。

如此高深的東西,會不會很難?

其實,優質的科學往往應用很簡單。今天我們就給大家從0開始介紹一下NumPy的使用。


1、安裝

說到安裝,我提一句,昨天一個小夥伴問我安裝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

即可。有朋友遇到安裝的問題,大多因為網速,可以選擇國內鏡像。有需要的,我們在評論中回復給大家。

2、numpy的使用

(1) shape

形狀所謂shape,就是比如一個矩陣是3x4的,那麼我們就可以使用下面的代碼定義

shape = (3,4)(2)

(2)dtype 數據類型

numpy的數據類型有很多。常用的比如bool布爾類型,int32 32位整數,float32 32位浮點數。我們可以定義

dtype = numpy.float32

確定為32位浮點數。numpy支持各種數據類型,在定義之前確定數據類型是一個很好的習慣。

(3)zeros函數

numpy.zeros函數定義了所有值都為0的矩陣或者列表。我們可以這樣定義初始化一個0矩陣。

z=numpy.zeros(shape,dtype=numpy.float32)

這樣就生成了一個shape 結構(這裡是3x4)的矩陣,並且每個元素都是一個float32類的浮點數。

(4)ones函數

numpy.ones函數和numpy.zeros函數類似,差別就是生成一個值都等於1的矩陣,其他用法類似。

z=numpy.ones(shape,dtype=numpy.float32)

(5)ndarray矩陣

numpy的矩陣類型是ndarray。我們前面介紹了zeros和ones,我們是建議大家用他們去定義矩陣,並做一個簡單的初始化。為什麼呢?給大家說個高深的東西,就是群。0是加法群的單位元素,1是乘法群的單位元素。好吧,這個太數學了,屬於大學裡的代數學範疇。

numpy的初始化方法非常多,我為什麼只講這麼點?

原因很簡單,因為,這個是經過檢驗不容易出錯的。更重要的,在數據為對象的矩陣中,這個方法可以適用於所有場景。

(6)numpy強大的數學處理能力

數學工具,不用多說了,注意,這裡是矩陣整體運算,不是單體的,比如numpy.sin(a)表示對a的所有元素都求sin值。

  • NumPy 包含大量的各種數學運算的函數,包括三角函數,算術運算的函數,複數處理函數等,
  • 算術函數包含簡單的加減乘除: add()subtract()multiply()divide()
  • NumPy 提供了很多統計函數,用於從數組中查找最小元素,最大元素,百分位標準差和方差等
  • NumPy 提供了多種排序的方法。 這些排序函數實現不同的排序算法,每個排序算法的特徵在於執行速度,最壞情況性能,所需的工作空間和算法的穩定性
  • NumPy 提供了線性代數函數庫 linalg,該庫包含了線性代數所需的所有功能

可以這樣說,Matlab能處理的事NumPy就能處理。

關於NumPy的內容,涉及到整個科學界的各個領域,是工程科學,數值計算,仿真科學,數據科學,圖像處理科學等各學科的必備工具。

希望大家能從這篇文章開始,嘗試使用NumPy。

輕鬆編程,快樂生活,求贊求關注!

相關焦點

  • 福利:大佬教你如何用 Python 自動化玩轉 Excel
    python有很多支持操作excel的第三方庫,xlwings是其中一個。程式設計師大佬,教你如何用玩轉自如最重要的是xlwings可以調用Excel文件中VBA寫好的程序,也可以讓VBA調用用玩轉自如xlwings與VBA的配合非常完美,你可以在python中調用VBA,也可以在VBA
  • 幫客戶解決Python numpy 庫安裝問題解決案例一則
    背景客戶是一名Python初學者遇到如下問題,無法安裝numpy庫。大概過了15分後,重新找到我。「不是我要價太高,是拿你的錢幫你把問題解決好。「,這是辛苦和血汗錢。問題解決階段1、問題的核心是缺少C++相關的庫,通過遠程大概花費20分鐘左右後
  • Python學習第116課——numpy.dot和矩陣相乘的數學運算
    【每天幾分鐘,從零入門python編程的世界!】關於numpy中數組的相乘,我們學習了對位相乘(用numpy.multiply、或*直接相乘,比如數組a和b的對位相乘就是numpy.multiply(a,b)或a*b)和一維數組的點乘(dot product,也有人叫inner product,比如一維數組a和b的點乘就是a.b)。numpy中的點乘就是numpy.dot。對於二維以上的數組的點乘,就會用到矩陣相乘。
  • Python學習第119課——numpy中的broadcasting
    【每天幾分鐘,從零入門python編程的世界!】這節課我們學習numpy中的數據的一個多變的特性--broadcasting,broadcasting的官方的說明比較麻煩,我們這裡把它簡化一下,就把它當做「腦補」的意思。我們舉例來說明。
  • Python和Java你更喜歡哪一個?
    」小妹兒跑去問大神(90度鞠躬):「大神,大神,學Java好還是學Python好?」大神嫌棄的看了我一眼,繼續妙手生花的敲代碼,良久,飄過來一句:「初學者才爭論語言,我們只看心情。」我:……「那他們的區別是什麼?」「區別就是他們是否適合你們這些小白。」
  • Python學習第117課——numpy中dot的運用舉例
    【每天幾分鐘,從零入門python編程的世界!】上節我們學習了最基礎的matrix的運算,可能有小夥伴覺得這都要涉及高等數學知識了,確實如果你想做數據科學、做人工智慧,統計學、概率論等數學知識,尤其是算法是繞不過去的坎,但是不要怕!!!
  • 看骨灰級Pythoner如何玩轉Python
    pandas是基於numpy構建的,使數據分析工作變得更快更簡單的高級數據結構和操作工具。本文為大家帶來10個玩轉Python的小技巧,學會了分分鐘通關變大神!read_csv每個人都知道這個命令。但如果你要讀取很大的數據,嘗試添加這個參數:nrows = 5,以便在實際加載整個表之前僅讀取表的一小部分。
  • 用Python做特效,分分鐘碾壓五毛黨
    Python厲害已經不是一天兩天的事了,但是我怎麼也沒想到,Python還能做特效!因為之前接觸過Python一個批量摳圖的模型庫,然後最近看視頻突然就靈光一現,為啥不用Python給視頻摳圖換個背景?於是就有了下面這個操作:先看看效果,這是原場景:這是換過背景的樣子:看起來還不錯吧。
  • 數據分析-numpy庫快速了解
    NumPy是SciPy、Pandas等數據處理或科學計算庫的基礎2.numpy庫有什麼用numpy用途是很廣的,涉及到數字計算等都可以使用,它的優勢在於底層是C語言開發的數據非常快。 數組對象可以去掉元素間運算所需的循環,使一維向量更像單個數據 設置專門的數組對象,經過優化,可以提升這類應用的運算速度觀察:科學計算中,一個維度所有數據的類型往往相同 數組對象採用相同的數據類型,有助於節省運算和存儲空間具體可以看下面一個例子:(來源嵩天老師案例)3.numpy庫怎麼使用先安裝numpy
  • 好程式設計師Python培訓分享numpy簡介
    數學任務:NumPy對於執行各種數學任務非常有用,如數值積分、微分、內插、外推等。因此,當涉及到數學任務時,它形成了一種基於Python的MATLAB的快速替代。 二、numpy安裝 numpy要求python版本在3.5以上 1.windows下的安裝 · pip安裝 python -m pip install
  • 程式設計師大佬,教你如何用 Python 自動化操作 Excel!玩轉自如
    excel已經成為必不可少的數據處理軟體,幾乎天天在用。python有很多支持操作excel的第三方庫,xlwings是其中一個。xlwings還可以和matplotlib、numpy以及pandas無縫連接,支持讀寫numpy、pandas數據類型,將matplotlib可視化圖表導入到excel中。
  • Python的武器庫04:numpy模塊(上)
    說到程式語言python,有一個著名的格言"餘生太短,只用python"。如果要分析為什麼會存在這麼一句格言?python的語法並不簡單,有複雜難懂的部分,之所以又這樣一句格言,是因為python中有很多強大的模塊,就像一個武器庫。Python正式由於這些模塊的出現,只要引入這個模塊,調用這個模塊的集成函數,問題迎刃而解;不需要從頭開始,節省了大量的時間。
  • 不懂NumPy 算什麼 Python 程式設計師?|CSDN 博文精選
    list VS ndarraynumpy 的核心是 ndarray 對象(numpy 數組),它封裝了 python 原生的同數據類型的 n 維數組(python 數組)。numpy 數組和 python 數組之間有幾個重要的區別:numpy 數組一旦創建,其元素數量就不能再改變了。增刪 ndarray 元素的操作,意味著創建一個新數組並刪除原來的數組。
  • Python學習第114課——numpy中ndarray的四則運算
    【每天幾分鐘,從零入門python編程的世界!】我們為什麼要學習numpy?numpy其實就是number+Python的簡寫,意思就是通過Python對數據進行處理。要對數據進行處理,就少不了最基本的加減乘除等操作。
  • Python學習第112課——numpy中數組查找元素和改變元素的小技巧
    【每天幾分鐘,從零入門python編程的世界!】上節我們學習了如何利用index找到ndarray數組中的一些元素,並把找到的元素生成一個新的ndarray。代碼如下:現在我們學習幾個用index找到ndarray中元素的小技巧。
  • Python的武器庫05:numpy模塊(下)
    說到程式語言python,有一個著名的格言"餘生太短,只用python"。如果要分析為什麼會存在這麼一句格言?python的語法並不簡單,有複雜難懂的部分,之所以有這樣一句格言,是因為python中有很多強大的模塊,就像一個武器庫。
  • Glumpy是一個用python+OpenGL來進行快速Numpy可視化科學庫
    1 說明:=====1.1 Glumpy:是一個OpenGL+NumPy庫,它用OpenGL來進行快速Numpy可視化。1.2 即:Python+Numpy+OpenGL實現快速,可擴展和美觀的科學可視化。1.3 它是一個由Nicolas Rougier啟動的開源項目,致力於高效可視化。
  • 10分鐘玩轉Python+Selenium自動化測試,快速入門通道!
    二是selenium的更新伴隨著工具的合併,很多人壓根沒高清自己用的是selenium RC 還是 webdriver。根據最近面試的情況,把很多同學在實踐selenium的時候沒弄清的問題總結了一下,順便教大家如何快速玩轉selenium!現在測試工程師都在聊什麼?1、python會了嗎最近?2、selenium自動化你們團隊進度怎麼樣?
  • Numpy神秘失蹤事件
    其中最有趣的,也最值得記錄一下的當屬numpy的這個。這裡老胡分享一下解決問題的過程,希望大家看後有所收穫。  由於是內網測試環境,沒有外網,自然就先在本地用conda創建python虛擬環境,安裝好所有需要的包再移過去。
  • 乾貨知識分享,python-numpy-01-numpy介紹
    ))運算結果:[0 1 2 3 4 5 6 7 8 9]<class &39;>說明: 通過 np.arange() 方式生成的數據 [0 1 2 3 4 5 6 7 8 9] ,從外觀上面看和