Python數據分析之Numpy庫的使用詳解
前言
由於自己並不以Python語言為主,這裡隻是簡單介紹一下Numpy庫的使用
提示:以下是本篇文章正文內容
🧡Numpy庫介紹
numpy 庫處理的最基礎數據類型是由同種元素構成的多維數組(ndarray), 簡稱” 數組”,數組中所有元素的類型必須相同, 數組中元素可以用整數索引, 序號從0開始。 ndarray類型的維度(dimensions)叫做軸(axes), 軸的個數叫做秩(rank)。 一維數組的秩為1, 二維數組的秩為2, 二維數組 相當於由兩個一維數組構成
numpy 庫概述:
由於numpy 庫中函數較多且命名容易與常用命名混淆,建議采用如下方式引用numpy 庫:
import numpy as np
其中, as保留字與import一起使用能夠改變後續代碼中庫的命名空間, 有助於提高代碼可讀性。 簡單說, 在程序的後續部分中, np代替numpy。
💙ndarray 類常用屬性
創建一個簡單的數組後, 可以查看ndarray類型有一些基本屬性
1.ndarray.ndim
數組軸的個數,在python的世界中,軸的個數被稱作秩
2.ndarray.shape
數組的維度。這是一個指示數組在每個維度上大小的整數元組。例如一個n排m列的矩陣,它的shape屬性將是(2,3),這個元組的長度顯然是秩,即維度或者ndim屬性
3.ndarray.size
數組元素的總個數,等於shape屬性中元組元素的乘積。
4.ndarray.dtype
一個用來描述數組中元素類型的對象,可以通過創造或指定dtype使用標準Python類型。另外NumPy提供它自己的數據類型。
5.ndarray.itemsize
數組中每個元素的字節大小。例如,一個元素類型為float64的數組itemsiz屬性值為8(=64/8),又如,一個元素類型為complex32的數組item屬性為4(=32/8).
6.ndarray.data
包含實際數組元素的緩沖區,通常我們不需要使用這個屬性,因為我們總是通過索引來使用數組中的元素。
import numpy as np #引入numpy模塊 a = np.ones((4,5)) print(a) print('數據軸個數: ',a.ndim) print('每個維度的數據個數: ',a.shape) print('數據類型',a.dtype)
# 結果
[[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]]
數據軸個數: 2
每個維度的數據個數: (4, 5)
數據類型 float64
小結:
💚Numpy常用函數
🍓array函數
函數原型:
np.array([x,y,x],dtype=int) # 從列表和元組中創建數組
功能:array函數將列表轉矩陣
import numpy as np #引入numpy模塊 array=np.array([[1,2,3], #列表轉矩陣 [4,5,6]]) print(array) print('number of dim',array.ndim) #輸出矩陣數據軸數 print('size',array.size) #輸出矩陣總元素個數
# 結果
[[1 2 3]
[4 5 6]]
number of dim 2
size 6
🥝arange()函數和linspace()函數
函數原型:
np.arange(x,y,i) # 創建一個由x到y,以i為步長的數組 np.linspace(x,y,n) # 創建一個由x到y,等分為n個元素的數組
import numpy as np #引入numpy模塊 a=np.arange(1,12,2)# np.arange從1到12,間隔為2 print(a) #從2到12,生成隨機6個數,並控制為2行3列 b=np.linspace(2,12,6).reshape(2,3) print(b)
# 結果:
[ 1 3 5 7 9 11]
[[ 2. 4. 6.]
[ 8. 10. 12.]]
🍎zeros(),empty和ones()
功能:創建都是初始值相同元素(0,1)的數組
函數原型:
np.ones((m,n),dtype) # 創建一個m行n列的全為1的數組 np.zeros((m,n),dtype) # 創建一個m行n列的全為0的數組 np.empty((m,n),dtype) # 創建一個m行n列的全為0的數組
import numpy as np #引入numpy模塊 a=np.zeros((5,8)) #元素都是0 b=np.ones((5,6)) #元素都是1 print(a) print(b)
# 結果:
[[0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0.]]
[[1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1.]]
🍒ndarray 類的索引和切片方法
和列表的索引差不多的
import numpy as np #引入numpy模塊 a = np.random.rand(5,3)#生成隨機5行3列數組 print(a) print('獲取第2行',a[2]) #獲取第2行 print('切片',a[1:3]) #切片, 1到3行,不包括3 print('切片',a[-5:-2:2]) #切片,從後向前,步長為2
# 結果
[[0.53469047 0.47559129 0.65865181]
[0.89942399 0.66683114 0.55181635]
[0.11989817 0.06055933 0.56880058]
[0.95744499 0.94814163 0.2155053 ]
[0.95179242 0.61544664 0.40876683]]
獲取第2行 [0.11989817 0.06055933 0.56880058]
切片 [[0.89942399 0.66683114 0.55181635]
[0.11989817 0.06055933 0.56880058]]
切片 [[0.53469047 0.47559129 0.65865181]
[0.11989817 0.06055933 0.56880058]]
🍇numpy 庫運算函數
總結
提示:這裡對文章進行總結:
numpy 庫還包括三角運算函數、 傅裡葉變換、 隨機和概率分佈、 基本數值統計、 位運算、 矩陣運算等非常豐富的功能, 在使用時可以到官方網站查詢
python基礎查表
到此這篇關於Python數據分析之Numpy庫的使用詳解的文章就介紹到這瞭,更多相關Python 數據分析內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python Numpy中ndarray的常見操作
- NumPy-ndarray 的數據類型用法說明
- python數學建模是加深Numpy和Pandas學習
- Python NumPy教程之數組的創建詳解
- Python NumPy教程之數組的基本操作詳解