程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Python NumPy庫安裝使用筆記

Python NumPy庫安裝使用筆記

編輯:更多關於編程

       這篇文章主要介紹了Python NumPy庫安裝使用筆記,本文講解了NumPy的安裝和基礎使用,並對每一句代碼都做了詳細解釋,需要的朋友可以參考下

      1. NumPy安裝

      使用pip包管理工具進行安裝

       代碼如下:

      $ sudo pip install numpy

      使用pip包管理工具安裝ipython(交互式shell工具)

       代碼如下:

      $ sudo pip instlal ipython

      $ ipython --pylab #pylab模式下, 會自動導入SciPy, NumPy, Matplotlib模塊

      2. NumPy基礎

      2.1. NumPy數組對象

      具體解釋可以看每一行代碼後的解釋和輸出

      代碼如下:

      In [1]: a = arange(5) # 創建數據

      In [2]: a.dtype

      Out[2]: dtype('int64') # 創建數組的數據類型

      In [3]: a.shape # 數組的維度, 輸出為tuple

      Out[3]: (5,)

      In [6]: m = array([[1, 2], [3, 4]]) # array將list轉換為NumPy數組對象

      In [7]: m # 創建多維數組

      Out[7]:

      array([[1, 2],

      [3, 4]])

      In [10]: m.shape # 維度為2 * 2

      Out[10]: (2, 2)

      In [14]: m[0, 0] # 訪問多維數組中特定位置的元素, 下標從0開始

      Out[14]: 1

      In [15]: m[0, 1]

      Out[15]: 2

      2.2. 數組的索引和切片

       代碼如下:

      In [16]: a[2: 4] # 切片操作類似與Python中list的切片操作

      Out[16]: array([2, 3])

      In [18]: a[2 : 5: 2] # 切片步長為2

      Out[18]: array([2, 4])

      In [19]: a[ : : -1] # 翻轉數組

      Out[19]: array([4, 3, 2, 1, 0])

      In [20]: b = arange(24).reshape(2, 3, 4) # 修改數組的維度

      In [21]: b.shape

      Out[21]: (2, 3, 4)

      In [22]: b # 打印數組

      Out[22]:

      array([[[ 0, 1, 2, 3],

      [ 4, 5, 6, 7],

      [ 8, 9, 10, 11]],

      [[12, 13, 14, 15],

      [16, 17, 18, 19],

      [20, 21, 22, 23]]])

      In [23]: b[1, 2, 3] # 選取特定元素

      Out[23]: 23

      In [24]: b[ : , 0, 0] # 忽略某個下標可以用冒號代替

      Out[24]: array([ 0, 12])

      In [23]: b[1, 2, 3]

      Out[23]: 23

      In [24]: b[ : , 0, 0] # 忽略多個下標可以使用省略號代替

      Out[24]: array([ 0, 12])

      In [26]: b.ravel() # 數組的展平操作

      Out[26]:

      array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,

      17, 18, 19, 20, 21, 22, 23])

      In [27]: b.flatten() # 與revel功能相同, 這個函數會請求分配內存來保存結果

      Out[27]:

      array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,

      17, 18, 19, 20, 21, 22, 23])

      In [30]: b.shape = (6, 4) # 可以直接對shape屬性賦值元組來設置維度

      In [31]: b

      Out[31]:

      array([[ 0, 1, 2, 3],

      [ 4, 5, 6, 7],

      [ 8, 9, 10, 11],

      [12, 13, 14, 15],

      [16, 17, 18, 19],

      [20, 21, 22, 23]])

      In [30]: b.shape = (6, 4) # 矩陣的轉置

      In [31]: b

      Out[31]:

      array([[ 0, 1, 2, 3],

      [ 4, 5, 6, 7],

      [ 8, 9, 10, 11],

      [12, 13, 14, 15],

      [16, 17, 18, 19],

      [20, 21, 22, 23]])

      2.3. 組合數組

       代碼如下:

      In [1]: a = arange(9).reshape(3, 3) # 生成數組對象並改變維度

      In [2]: a

      Out[2]:

      array([[0, 1, 2],

      [3, 4, 5],

      [6, 7, 8]])

      In [3]: b = a * 2 # 對a數組對象所有元素乘2

      In [4]: b

      Out[4]:

      array([[ 0, 2, 4],

      [ 6, 8, 10],

      [12, 14, 16]])

      #######################

      In [5]: hstack((a, b)) # 水平組合數組a和數組b

      Out[5]:

      array([[ 0, 1, 2, 0, 2, 4],

      [ 3, 4, 5, 6, 8, 10],

      [ 6, 7, 8, 12, 14, 16]])

      In [6]: vstack((a, b)) # 垂直組合數組a和數組b

      Out[6]:

      array([[ 0, 1, 2],

      [ 3, 4, 5],

      [ 6, 7, 8],

      [ 0, 2, 4],

      [ 6, 8, 10],

      [12, 14, 16]])

      In [7]: dstack((a, b)) # 深度組合數組, 沿z軸方向層疊組合數組

      Out[7]:

      array([[[ 0, 0],

      [ 1, 2],

      [ 2, 4]],

      [[ 3, 6],

      [ 4, 8],

      [ 5, 10]],

      [[ 6, 12],

      [ 7, 14],

      [ 8, 16]]])

      2.4. 分割數組

      復制代碼 代碼如下:

      In [8]: a

      Out[8]:

      array([[0, 1, 2],

      [3, 4, 5],

      [6, 7, 8]])

      In [9]: hsplit(a, 3) # 將數組沿水平方向分割成三個相同大小的子數組

      Out[9]:

      [array([[0],

      [3],

      [6]]),

      array([[1],

      [4],

      [7]]),

      array([[2],

      [5],

      [8]])]

      In [10]: vsplit(a, 3) # 將數組沿垂直方向分割成三個子數組

      Out[10]: [array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]

      2.5. 數組的屬性

      復制代碼 代碼如下:

      In [12]: a.ndim # 給出數組的尾數或數組的軸數

      Out[12]: 2

      In [13]: a.size # 數組中元素的個數

      Out[13]: 9

      In [14]: a.itemsize # 數組中元素在內存中所占字節數(int64)

      Out[14]: 8

      In [15]: a.nbytes # 數組所占總字節數, size * itemsize

      Out[15]: 72

      In [18]: a.T # 和transpose函數一樣, 求數組的轉置

      Out[18]:

      array([[0, 3, 6],

      [1, 4, 7],

      [2, 5, 8]])

      2.6. 數組的轉換

      復制代碼 代碼如下:

      In [19]: a.tolist() # 將NumPy數組轉換成python中的list

      Out[19]: [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

      3. 常用函數

      復制代碼 代碼如下:

      In [22]: c = eye(2) # 構建2維單位矩陣

      In [23]: c

      Out[23]:

      array([[ 1., 0.],

      [ 0., 1.]])

      In [25]: savetxt("eye.txt", c) # 將矩陣保存到文件中

      In [5]: c, v = loadtxt("test.csv", delimiter=",", usecols=(0, 1), unpack=True) # 分隔符為, usecols為元組表示要獲取的字段數據(每一行的第零段和第一段), unpack為True表示拆分存儲不同列的數據, 分別存入c, v

      In [12]: c

      Out[12]: array([ 1., 4., 7.])

      In [13]: mean(c) # 計算矩陣c的mean均值

      Out[13]: 4.0

      In [14]: np.max(c) # 求數組中的最大值

      Out[14]: 7.0

      In [15]: np.min(c) # 求數組中的最小值

      Out[15]: 1.0

      In [16]: np.ptp(c) # 返回數組最大值和最小值之間的差值

      Out[16]: 6.0

      In [18]: numpy.median(c) # 找到數組中的中位數(中間兩個數的平均值)

      Out[18]: 4.0

      In [19]: numpy.var(c) # 計算數組的方差

      Out[19]: 6.0

      In [20]: numpy.diff(c) # 返回相鄰數組元素的差值構成的數組

      Out[20]: array([ 3., 3.])

      In [21]: numpy.std(c) # 計算數組的標准差

      Out[21]: 2.4494897427831779

      In [22]: numpy.where(c > 3) # 返回滿足條件的數組元素的下標組成的數組

      Out[22]: (array([1, 2]),)

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved