#%% 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()
numpy數(shù)組
?著作權(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ù)。
【社區(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)容
- 數(shù)組的切片與索引 一維NumPy數(shù)組的切片操作與Python列表的切片一樣 通過(guò)下標(biāo)選擇該數(shù)組3-7的數(shù)In [1...
- NumPy 是一個(gè)基礎(chǔ)性的Python庫(kù),為我們提供了常用的數(shù)值數(shù)組和函數(shù) 安裝 一個(gè)簡(jiǎn)單的應(yīng)用 假設(shè)要對(duì)向量a和...
- NumPy數(shù)組對(duì)象 NumPy中的多為數(shù)組稱為ndarray,它有兩部分組成 數(shù)據(jù)本身 描述數(shù)據(jù)的元數(shù)據(jù) NumP...
- 圖片轉(zhuǎn)numpy數(shù)組 基于PIL庫(kù) numpy數(shù)組轉(zhuǎn)圖片 基于PIL庫(kù)
- NumPy(Numerical Python) 是 Python 語(yǔ)言的一個(gè)擴(kuò)展程序庫(kù),支持大量的維度數(shù)組與矩陣運(yùn)...