numpy庫使用python進行科學計算,尤其是資料分析時,所用到的乙個基礎庫。它是大量python數學和科學計算包的基礎,比如我們後面會講到的pandas庫就用到了numpy。pandas庫專門用於資料分析,充分借鑑了python標準庫numpy的相關概念。而python標準庫所提供的內建工具對資料分析方面的大多數計算來說都過於簡單而不夠用。
為了更好地理解和使用python所有的科學計算包,尤其是pands,需要先掌握numpy庫的用法,這樣才能把pandas的用處發揮到極致。
整個numpy庫的基礎是ndarray(即n維陣列)物件。它是一種由同質元素組成的多維陣列 ,元素數量是事先指定好的。同質指的是幾乎所有元素的型別和大小都相同。事實上,資料型別由另外乙個叫做dtype的numpy物件來指定;每個ndarray只有一種dtype型別。
陣列的維數和元素數量由陣列的型來確定,陣列的型由n個正整數組成的元組來指定,元組的每個元素對應每一維的大小。陣列的維統稱為軸,軸的數量被稱為秩。
numpy陣列的另乙個特點是大小固定,也就是說,建立陣列時一旦指定好大小,就不會再發生改變。這與python的列表有所不同,列表的大小是可以改變的。
numpy 提供了兩個基本的物件: ndarray 和 ufunc. ndarray是儲存資料的多維陣列, 而 ufunc 是對陣列進行處理的函式。
2.numpy 的安裝:
pip install numpy
如何建立乙個 ndarray物件import numpy as np
data = np.array([1,2,3])
data = np.asarray([1,2,3])
print(data)
#>>> [1 2 3]
將ndarray轉回list型別
df = data.tolist()
print(df)
#>>> [1,2,3]
檢視矩陣的形態
df = data.shape
print(df)
#>>>(3,)
檢視矩陣的維度
df = data.ndim
print(df)
#>>> 1
生成區間數,0-10之間 左臂右開
df = np.arange(10)
print(df)
#>>> [0 1 2 3 4 5 6 7 8 9]
df1 = np.arange(20).reshape(4,5)
print(df1)
#>>>
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
矩陣的乘積
df = np.dot(data[1],data[2])
print(df)
#>>> 6
矩陣的元素個數
df = data.size
print(df)
#>>> 3
矩陣的求和
df = np.sum(data)
print(df)
#>>> 6
求取平均值
# 求得平均值並保留小數點後兩位
df = round(np.mean(data),2)
print(df)
#>>> 2
隨機種子,固定編碼
#random.seed()的作用就是在第一次生成後,每次執行都固定生成資料不變
np.random.seed(10)
#隨機生成2-50之間的數, 並且形態為 5行 3列 的矩陣
df = np.random.randint(2,50,size=(5,3))
print(df)
#>>>
[[11 38 17]
[ 2 30 27]
[31 31 10]
[11 2 44]
[42 38 18]]
行,列 的拼接
date = np.arange(10).reshape(2,5)
date1 = np.arange(15).reshape(3,5)
date2 = np.arange(16).reshape(2,8)
df1 =np.r_[date,date1] #r_ 行的拼接 , 列必須相同
df2 = np.c_[date,date2] #c_ 列的拼接, 行必須相同
print(df1)
print(df2)
#>>>
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
[[ 0 1 2 3 4 0 1 2 3 4 5 6 7]
[ 5 6 7 8 9 8 9 10 11 12 13 14 15]]
生成隨機n到y之間的 等差數列 [起n 始y]
#隨機生成n-y之間的10個數,但是起始位和結束位為它們自身
df = linspace(start=n,stop=y,num=10)
print(df)
#>>>
[0.00240676 0.54881636 0.12697184 0.07979268 0.2350386 0.65996495
0.21495319 0.20304662 0.38286511 0.2248728 ]
t矩陣轉置, 行變例
data = np.arange(20),reshape(2,2,5)
df =data.t
print(data)
print(df)
#>>>>
[[[ 0 1 2 3 4]
[ 5 6 7 8 9]]
[[10 11 12 13 14]
[15 16 17 18 19]]]
[[[ 0 10]
[ 5 15]]
[[ 1 11]
[ 6 16]]
[[ 2 12]
[ 7 17]]
[[ 3 13]
[ 8 18]]
[[ 4 14]
[ 9 19]]]
花了一點時間, 寫了一下numpy 常用的一些方法, 同樣是為了加強記憶, 也希望能幫到剛學的朋友!!! 利用python進行資料分析 02 numpy基礎
ndarray 多維陣列物件 ndarray是乙個通用的同構資料多維容器,每個陣列均有乙個shape 表示維度大小 和dtype 說明陣列資料型別的物件 eg data.shape 2,3 data.dtype dtype float64 1 建立ndarray data1建立arr1的ndarra...
Python之資料分析(寶可夢資料分析)
在此感謝阿里雲天池平台提供的學習平台,並提供相應的教程供小白們學習資料分析。seaborn庫 seaborn 是基於 python 且非常受歡迎的圖形視覺化庫,在 matplotlib 的基礎上,進行了更高階的封裝,使得作圖更加方便快捷。即便是沒有什麼基礎的人,也能通過極簡的 做出具有分析價值而又十...
python資料分析之Numpy
numpy系統是python的一種開源的數值計算擴充套件 ndarray 多維陣列 所有元素必須是相同型別 ndim屬性,維度個數 shape屬性,各維度大小 dtype屬性,資料型別 coding utf 8 import numpy as np 生成指定維度的隨機多維資料 data np.ran...