numpy數(shù)組

#%% md

### **為什么numpy比原生python快?**

#%%

import numpy as np
import time
# 驗(yàn)證:numpy計(jì)算?原?python好
start_time = time.time()
numbers = list(range(1,1000000))
total = sum(numbers)
end_time = time.time()
print('原?Python計(jì)算100萬(wàn)個(gè)元素的和耗時(shí):',total,end_time - start_time)

start_time2 = time.time()
# arange numpy里帶的數(shù)組函數(shù)
numbers2 = np.arange(1,1000000).astype(np.int64)  # astype轉(zhuǎn)成整數(shù)64位
total2 = np.sum(numbers2)
end_time2 = time.time()
print('NumPy計(jì)算100萬(wàn)個(gè)元素的和耗時(shí):',total2,end_time2 - start_time2)

#%% md

### **創(chuàng)建一維數(shù)組**

#%%

# 列表進(jìn)行轉(zhuǎn)換
a = np.array([1,2,3])
a

#%%

print(a,type(a))   # <class 'numpy.ndarray'>表示數(shù)組

#%%

# np.arange()
a = np.arange(10)   # 和range()類似
print(a,type(a))

#%%

arl = np.linspace(2.0,3.0,num=5)  # 2.0-3.0之間取5等數(shù),等距
print(arl)

#%% md

### **創(chuàng)建二維數(shù)組**

#%%

lst = [[1,2],[3,4],[5,6]]
# 創(chuàng)建一個(gè)2*3的二維數(shù)組
t = np.array(lst)
print(t)

#%%

lst = [[1.0,2],[3,4],[5,6]]  # 只要有一個(gè)有精確,那么所以的都會(huì)精確
t = np.array(lst)
print(t)

#%%

np.zeros((3,4))  # 創(chuàng)建?個(gè)3*4的全零?維數(shù)組

#%%

np.ones((2,3))  # 創(chuàng)建?個(gè)2x3的全一?維數(shù)組

#%%

np.eye(2)  # 創(chuàng)建?個(gè)2x2的單位矩陣

#%% md

### **Numpy數(shù)組的運(yùn)算**

#%%

arr1 = np.array([[1.,2.,3.],[4.,5.,6.]])
print(arr1)
print('-'*30)
print(arr1 + arr1)  # 對(duì)應(yīng)位置元素進(jìn)行相加
print('-'*30)
print(arr1 - arr1)
print('-'*30)
print(arr1 * arr1)
print('-'*30)
print(arr1 / arr1)

#%%

1/arr1  #廣播機(jī)制  1/每一個(gè)

#%% md

### **基本的索引和切片**

#%%

lst = [1,2,3,4,5]
print(lst[1:3])

#%%

ar = np.arange(5,20)
print(ar)
print('-'*30)
print(ar[2:5])
print('-'*30)
print(ar[1::2])

#%%

# 二維數(shù)組
ar = np.arange(16).reshape(4,4)  # 用0-15創(chuàng)建一個(gè)4*4的二維數(shù)組
ar

#%%

ar[1]  # array([4, 5, 6, 7])  默認(rèn)是取行

#%%

print(ar[:,1])  # 逗號(hào)前是行,逗號(hào)后是列

#%%

# 取6
print(ar[1,2])

#%%

# 取 5 6 9 10
print(ar[1:3,1:3])

#%% md

### **生活案例小實(shí)戰(zhàn)**

#%%

# 假設(shè)的身高和體重?cái)?shù)據(jù)
heights = np.array([1.65,1.75,1.20,1.70,1.60])
weights = np.array([65,70,80,75,55])

#%% md

### **常用統(tǒng)計(jì)函數(shù)**

#%%

exam_scores = np.array([85,69,85,98,85,32,47,69,88,69,65,64,57])
print('最大值',np.max(exam_scores))
print('最小值',np.min(exam_scores))
print('平均值',np.mean(exam_scores))

#%% md

### **where的使用**

#%%

arr1 = np.array([2,7,22,88,58])
# 按條件篩選,如果只有一個(gè)條件,返回的是符合條件對(duì)應(yīng)的下標(biāo)
np.where(arr1 > 30)

#%%

# 三元表達(dá)式:為真的結(jié)果if 條件 else為假的結(jié)果
# 滿足條件,輸出100,不滿足則對(duì)應(yīng)位置位-100
print(np.where(arr1 > 30,100,-100))

#%% md

### **數(shù)學(xué)公式**

#%%

p1 = np.array([1,2])
p2 = np.array([4,6])
# np.linalg 線性代數(shù)模塊
distance = np.linalg.norm(p1 - p2)
distance

#%% md

### **圖像處理**

#%%

import numpy as np
import matplotlib.pyplot as plt

# F:\python爬蟲知識(shí)點(diǎn)\上課內(nèi)容\25-js逆向4\js逆向.assets\1701958877286.png
n1 = plt.imread(r'F:\python爬蟲知識(shí)點(diǎn)\上課內(nèi)容\25-js逆向4\js逆向.assets\1701958877286.png')
plt.imshow(n1)
plt.show()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容