Python中Numpy庫使用總結

Python中Numpy庫使用總結


  • Numpy庫的使用
    Numpy庫和Pandas庫均是python機器學習中不可缺少的一個包,其重要性我就不詳細說明,直接上幹活

Numpy庫的使用

Numpy庫的安裝

  1. windown中提前安裝好python,並且配置本地環境,具體方法參照百度
  2. 檢查是否安裝好pip(pip是python下一個好基友)
  3. window下命令行直接 pip install numpy 就okay

矩陣的基本屬性

在本文中,直接套用線性代數的中矩陣代替原文中Numpy array

  1. python下使用Numpy,首先需要引入numpy庫

    import numpy as np
    
    # 以下效果相同
    
    import numpy
    
  2. python下Numpy元素的類型

    import numpy as np
    
    # arange函數是生成0-14的排列 
    
    test_numpy = np.arange(15).reshape(3, 5)
    print(type(test_numpy))
    
    # 輸出的結果爲 <type 'numpy.ndarray'>
    
  3. ndarray.ndim 函數,求解矩陣的維數

    import numpy as np
    
    test_numpy = np.arange(15).reshape(3, 5)
    test_ndim = test_numpy.ndim
    print(test_ndim)
    
    # 輸出的結果爲 2
    
  4. ndarray.shape 函數,求解矩陣的規模,通常情況用元組表示每一維的大小,比如一個3*2的矩陣求解結果爲(3,2)

    import numpy as np
    
    test_numpy = np.arange(15).reshapes(3, 5)
    print(type(test_numpy.shape))
    
    # 輸出結果爲 <type 'tuple'>
    
    print(test_numpy.shape)
    
    # 輸出結果爲 (3, 5) Tip:有些版本會輸出(3L, 5L)
    
  5. ndarray.size 函數,返回矩陣元素的個數,等於ndarray.shape元素之積

    import numpy as np
    
    test_numpy = np.arange(15).reshapes(3, 5)
    print(test_numpy.size)
    
    # 輸出結果爲 15
    
  6. ndarray.dtype 函數,返回矩陣中元素的類型,類型可以是自己創建的類型或者是標準的python類型,在Numpy中也有自己的類型,有numpy.int32, numpy.int16, numpy.float64等等類型

    import numpy as np
    
    test_numpy = np.arange(15).reshapes(3, 5)
    print(test_numpy.dtype)
    
    # 輸出結果爲 dtype('int32')
    
    print(test_numpy.dtype.name)
    
    # 輸出結果爲 int32
    
  7. ndarray.itemsize函數,返回矩陣中每個元素所佔的字節數,如同C語言中的sizeof(int)所佔4個字節,ndarray.dtype表示當前元素的類型爲int32,因此佔32/8=4個字節

import numpy as np

test_numpy = np.arange(15).reshapes(3, 5)
print(test_numpy.itemsize)
# 輸出結果爲 4
  1. ndarray.data 返回矩陣在內存中的具體信息
import numpy as np

test_numpy = np.arange(15).reshapes(3, 5)
print(test_numpy)
# 輸出結果 <read-write buffer for 0x0000000006778F30, size 60, offset 0 at 0x00000000061ADC38> 表明在內存中的具體情況

矩陣的創建

  1. 利用np.array()創建一個矩陣,注意array()裏面是一個python列表或者元組
import numpy as np

test_numpy = np.array([1, 2, 3, 4])
# 此種方法是錯誤的 np.array(1, 2, 3, 4)

test_numpy_two = np.array([(1, 2, 3), (4, 5, 6)])
  1. 利用np.array()創建指定複雜聯繫元素
import numpy as np

test_numpy = np.array([1, 2], [3, 4], dtype=complex)

# test_numpy爲 array([[1.+0.j, 2.+0.j], [3.+0.j, 4.+0.j]])
  1. 利用np.zeros()創建矩陣,利用np.zeros時一般矩陣的大小已知,但是內容未知,我們將其所有元素初始化爲0
import numpy as np

test_numpy_1 = np.zeros((3, 4))
# 注意此處傳入的參數是(3, 4),而非3,4

test_numpy_2 = np.zeros((3, 4), dtype=np.int32)
  1. 利用np.ones()創建矩陣,使用np.ones條件和np.zeros一樣,不過將其所有元素初始化爲1
 import numpy as np

 test_numpy_1 = np.zeros((3, 4))
 test_numpy_2 = np.zeros((3, 4), dtype=np.int32)
  1. 利用np.arange()創建矩陣,np.arange()功能和python中的range()函數一樣,生成一個序列。
import numpy as np

test_numpy = np.arange(0, 15, 1)
  1. 利用np.linspace()創建矩陣,np.linspace()的作用和np.arange()類似,但是略有不同,np.arange(begin, end, step)中指定起始區間,和步長,np.linspace(begin, end, num)中指定起始起始區間和需要取的數字。具體細節可以在編程中體會
import numpy as np

test_numpy = np.linspace(0, 15, 16)
  1. 其他函數同樣可以創建矩陣,這裏不一一介紹,如zeros_like, ones_like, empty, empty_like, numpy.random.rand, numpy.random.randn, fromfunction, fromfile

矩陣的打印

  • 矩陣的打印,直接使用python中print()函數即可
import numpy as np

numpy_test = np.arange(15)
print(numpy_test)

矩陣的基本運算

矩陣的基本運算和線性代數裏面矩陣的運算一致,不明白的建議翻閱《線性代數》一書

  • 矩陣的加法、減法和數乘
import numpy as np

test_numpy_a = np.array([5, 4, 3, 2])
test_numpy_b = np.array([4, 3, 2, 1])

# 矩陣的加法
test_numpy_c = test_numpy_a + test_numpy_b
# 此時test_numpy_c爲 array([9, 7, 5, 3])

# 矩陣的減法
test_numpy_d = test_numpy_a - test_numpy_b
# 此時test_numpy_d爲 array([1, 1, 1, 1])

#矩陣的數乘
test_numpy_e = test_numpy_a * 2
# 此時的test_numpy_c爲 array([10, 8, 6, 4])
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章