python常用庫之numpy 一

2021-08-28 19:00:35 字數 3267 閱讀 6219

numpy庫是python的一種開源的數字拓展,可以用來儲存和處理大型矩陣

1. 優點

① 多維陣列ndarray,元素級計算,運算快;

② 資料讀寫方便;

2. 特點

① 陣列定義的時候大小固定;

② 儲存元素為同質(同種資料型別);

3. 資料的生成(numpy支援多種資料型別)

a. 使用列表或元組資料構造

# 1.1 列表

arr1 = np.array([[1,2],[3,4]])

print(arr1)

'''[[1 2]

[3 4]]

'''# 1.2 元組

arr2 = np.array(((1,2),(3,4)))

print(arr2)

'''[[1 2]

[3 4]]

'''

b. 特殊陣列 

# 1.3 特殊陣列(0,1陣列)

arr3 = np.ones((2,1)) # 可以使用[2,1]或(1,2),通常使用(1,2)

print(arr3)

arr4 = np.zeros((2,1))

print(arr4)

'''[[ 1.]

[ 1.]]

[[ 0.]

[ 0.]]

'''

c. 產生等差/等比數列的陣列

# 1.4 產生等差陣列

arr5 = np.arange(0,5,1) # 起始,終止(不含),步長

print(arr5)

arr6 = np.linspace(0,5,5) # 起始,終止,個數

print(arr6)

# 建立等比數列,比例為10,起始值10^1(10),終止值為10^2(100),有2個數的等比數列

arr3 = np.logspace(1,2,2,base=10)

print(arr3)

s = 'abcd'

arr4 = np.fromstring(s,dtype=np.int8)

print(arr4)

'''[0 1 2 3 4]

[ 0. 1.25 2.5 3.75 5. ]

[ 10. 100.]

[ 97 98 99 100]

'''

d. 產生隨機數陣列

# 1.5 隨機數

arr7 = np.random.random((3,2))

print(arr7)

'''[[ 0.76359424 0.12621422]

[ 0.11343905 0.28138512]

[ 0.36330518 0.6561023 ]]

'''

e. 改變陣列的形式(特別,當reshape(1,n)時,即實現多維陣列的展開)

# 1.6 改變陣列的形狀

arr8 = np.arange(0,6).reshape(2,3)

print(arr8)

'''[[0 1 2]

[3 4 5]]

'''

4. 基本操作

a. 算術運算(加、減、乘、除、矩陣積)

# 2.1 算術運算

arr1 = np.arange(0,4).reshape(2,2)

print(arr1)

arr1_mul = arr1*2 # 陣列點積

print(arr1_mul) # [[ 2 3]

arr2 = np.arange(0,4).reshape(2,2)

arr1_mul = arr1.dot(arr2) # 矩陣乘積

print(arr1_mul)

'''原陣列:

[[0 1]

[2 3]]

陣列中每個元素乘以2

[[0 2]

[4 6]]

陣列與陣列之間的乘積,遵循矩陣的乘法(一行乘以一列)

[[ 2 3]

[ 6 11]]

'''# 2.2 自增和自減

arr3 = np.arange(0,4)

arr3+=1

print(arr3) # [1 2 3 4]

arr3-=1

print(arr3) # [0 1 2 3]

說明:在python中沒有++或--運算子,代替的是:+=1,-=1

b. 常用數學函式

# 向下取整

arr1 = np.random.random((1,3))-0.5

print(arr1)

arr1_floor = np.floor(arr1)

print(arr1_floor)

arr1_around = np.round(arr1,3) # 保留3位小數

print(arr1_around)

'''# 向下取整

[[ 0.14463441 -0.09867913 0.47058381]]

[[ 0. -1. 0.]]

[[ 0.015 0.182 -0.412]]

'''

常用函式參考:

5. 資料索引(抽取陣列中的一部分元素生成新的陣列)

# 1.一維陣列索引

a = np.arange(10)

print(a)#[0 1 2 3 4 5 6 7 8 9]

print(a[3:6])#3,4,5不包含6的值

print(a[:3])#不寫從0開始

print(a[1:8:2])#1-8,步長為2

print(a[::-1])#-1表示反轉陣列

b = np.random.rand(10)

print(b[b>0.5])#b中元素值大於0.5的值

# 2. 二維陣列索引

arr1 = np.arange(0,9).reshape((3,3))

print(arr1)

arr1_query = arr1[0:2,1:] # 分別切行和列

print(arr1_query)

'''[[0 1 2]

[3 4 5]

[6 7 8]]

[[1 2]

[4 5]]

'''

參考:

1.《python資料分析實戰》

Python之Numpy常用操作

1.陣列初始化 生成特定陣列 print np.array 2 3 dtype np.int16 shape 2 print np.zeros 2 3 shape 2,3 print np.empty 2 3 shape 2,3 print np.random.random 2 3 shape 2,...

Python筆記 Numpy之常用統計函式

第乙個引數cond,是乙個布林型陣列 第二個引數xarr,是乙個任意陣列 常量 變數 第三個引數yarr,是乙個任意陣列 常量 變數 該函式根據cond的真值來選取xarr或yarr中的元素,當cond第n個元素的值為true,則獲取xarr對應位置的元素資料,否則獲取yarr對應位置的元素資料,最...

python的numpy庫結構 Numpy庫簡介

今天給大家分享乙個資料分析處理資料的常見的庫 numpy。這個庫是 python 資料分析的基礎,它提供的資料結構比 python 自身的更高效。我們知道 python 有自帶的列表資料結構。numpy 庫和 list 列表有什麼區別呢?python list 列表儲存的是物件的指標,比如 0,1,...