numpy的是的python語言的乙個擴充程式庫。支援高階大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量的數學函式庫.numpy內部解除了的python的pil(全域性直譯器鎖),運算效率極好,是大量機器學習框架的基礎庫!
numpy的主要物件是同構多維陣列。它是乙個元素表(通常是數字),都是相同的型別,由正整數元組索引。在numpy維度中稱為軸。
例如,3d空間中的點的座標[1, 2, 1]
具有乙個軸。該軸有3個元素,所以我們說它的長度為3.在下圖所示的例子中,陣列有2個軸。第一軸的長度為2,第二軸的長度為3。
1.ndarray.ndim
陣列的軸數(尺寸)(維度)
import numpy as np
lst=[[1,3,5],[2,4,6]]
np_lst=np.array(lst)
print(np_lst.ndim) #維度 輸出為2
2.ndarray.shape
陣列的大小。這是乙個整數元組,表示每個維度中陣列的大小。對於具有n行和m列的矩陣,shape
將是(n,m)
。shape
因此,元組的長度 是軸的數量ndim
。
import numpy as np
lst=[[1,3,5],[2,4,6]]
np_lst=np.array(lst)
print(np_lst.shape) #形狀(2,3)即表示兩行三列
3.ndarray.size
陣列的元素總數。這相當於元素的乘積shape
。
import numpy as np
lst=[[1,3,5],[2,4,6]]
np_lst=np.array(lst)
print(np_lst.size) #大小 即2*3=6
4.ndarray.dtype
描述陣列中元素型別的物件
import numpy as np
lst=[[1,3,5],[2,4,6]]
np_lst=np.array(lst)
print(np_lst.dtype) #資料型別
5.ndarray.itemsize
陣列中每個元素的大小(以位元組為單位)
import numpy as np
lst=[[1,3,5],[2,4,6]]
np_lst=np.array(lst)
print(np_lst.itemsize) #陣列中每個元素的大小(以位元組為單位)。例如,型別的元素陣列float64有itemsize8(= 64/8),而其中乙個型別complex32有itemsize4(= 32/8)。它相當於ndarray.dtype.itemsize。
6.ndarray.data
包含陣列實際元素的緩衝區。
7.ndarray.zeros([2,4])
列印2行4列全部都是0的陣列
[[0. 0. 0. 0.]
[0. 0. 0. 0.]]
8.np.random.rand(10, 10)
建立指定形狀(示例為10行10列)的陣列(範圍在0至1之間)
9.np.random.uniform(0, 100)
建立指定範圍內的乙個數
10.np.random.randint(0, 100)
建立指定範圍內的乙個整數
11.np.random.normal(1.75, 0.1, (4, 5))
給定均值/標準差/維度的正態分佈
正態分佈
[[1.76907699 1.88394342 1.69159385 1.75740595 1.69936579]
[1.77768927 1.77417618 1.72996647 1.82366636 1.69116803]
[1.61790573 1.87392643 1.67828031 1.7040284 1.65029464]
[1.73725084 1.63215392 1.68628999 1.68973604 1.72005374]]
after_arr = arr[1:3, 2:4]
print(after_arr)## 擷取第1至2行的第2至3列(從第0行算起)
12.np.arange(1,11).reshape([2,5])
生成1-10的十個數,並把他分成2行五列
import numpy as np
stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])
stus_score > 80
stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])
# 求每一列的最大值(0表示列)
print("每一列的最大值為:")
result = np.amax(stus_score, axis=0)
print(result)
print("每一行的最大值為:")
result = np.amax(stus_score, axis=1)
print(result)
stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])
# 求每一行的最小值(0表示列)
print("每一列的最小值為:")
result = np.amin(stus_score, axis=0)
print(result)
stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])
# 求每一行的平均值(0表示列)
print("每一列的平均值:")
result = np.mean(stus_score, axis=0)
print(result)
# 求每一行的平均值(1表示行)
print("每一行的平均值:")
result = np.mean(stus_score, axis=1)
print(result)
stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])
# 求每一行的方差(0表示列)
print("每一列的方差:")
result = np.std(stus_score, axis=0)
print(result)
# 求每一行的方差(1表示行)
print("每一行的方差:")
result = np.std(stus_score, axis=1)
print(result)
stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])
print("加分前:")
print(stus_score)
# 為所有平時成績都加5分
stus_score[:, 0] = stus_score[:, 0]+5
print("加分後:")
print(stus_score)
(m行, n列) * (n行, z列) = (m行, z列)
stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])
# 平時成績佔40% 期末成績佔60%, 計算結果
q = np.array([[0.4], [0.6]])
result = np.dot(stus_score, q)
print("最終結果為:")
print(result)
[[84.8]
[81.4]
[78.6]
[84.2]
[78.6]]
Python資料分析之NumPy庫
numpy庫使用python進行科學計算,尤其是資料分析時,所用到的乙個基礎庫。它是大量python數學和科學計算包的基礎,比如我們後面會講到的pandas庫就用到了numpy。pandas庫專門用於資料分析,充分借鑑了python標準庫numpy的相關概念。而python標準庫所提供的內建工具對資...
資料分析常用庫 numpy
乙個在python中做科學計算的基礎庫,重在數值計算,也是大部分python科學計算庫的基礎庫,常用於大型 多維陣列上執行數值計算。numpy中的軸 axis 簡單理解為方向,使用0,1,2 數字表示,對於一位陣列,只有乙個0軸,對於二維陣列,有0軸和1軸,對於三維陣列有0,1,2軸。如果兩個陣列的...
python資料分析之Numpy
numpy系統是python的一種開源的數值計算擴充套件 ndarray 多維陣列 所有元素必須是相同型別 ndim屬性,維度個數 shape屬性,各維度大小 dtype屬性,資料型別 coding utf 8 import numpy as np 生成指定維度的隨機多維資料 data np.ran...