TensorFlow2.1入門學習筆記(1)——Numpy科學計算庫


在正式學習tensorflow2.0之前需要有一定的python基礎,對numpy,matplotlib等庫有基本的了解,筆者還是AI小白,通過寫博客來記錄自己的學習過程,同時對所學的東西進行總結。主要學習資料西安科技大學:神經網絡與深度學習——TensorFlow2.0實戰,北京大學:人工智能實踐Tensorflow筆記。博客從tf常用的庫開始,需要學習python基礎的朋友推薦菜鳥教程

TensorFlow2.0學習筆記(1)——Numpy科學計算庫

1.多為數組的形狀(Shape)

描述數組的維度,以及各維度內部元素個數

一維數組 shape:(5,)

描述某位同學5門課程的成績:
一維數組

二維數組 shape:(30,5)

描述某個班30位同學5門課成績:
二維數組

三維數組 shape:(10,30,5)

描述某個學校10個班30位同學5門課成績:
三維數組

四維數組 shape:(5,10,30,5)

描述某個地區5所學校10個班30位同學5門課成績:

在這里插入圖片描述

五維數組 shape:(4,5,10,30,5)

描述某個某個國家4個地區5所學校10個班30位同學5門課成績:在這里插入圖片描述
更高維以此類推

2.創建Nump
安裝Numpy庫
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
導入Numpy庫
import numpy as np 
import numpy import *		#可直接調用庫,但不推薦,容易和其他包沖突
創建數組
m = np.array([[[4, 5, 8, 3],[3, 6, 9, 0],[8, 4, 5, 6]],
				[[4, 5, 8, 3],[3, 6, 9, 0],[8, 4, 2, 1]]])
# 數組屬性
m.ndim				#3 維度
m.shape				#(2,3,4) 形狀
m.size				#24	元素的總個數
m.dtype				#int32 數據類型
m.itemsize			#4 每個元素的字節數

創建特殊的數組
特殊數組

# np.arrange(start=0,stop,num=1,dtype) 前閉后開,不包含結束值
n=np.arange(4)					#array([0, 1, 2, 3])
a=np.arange(0,2,0.3)			#array([0., 0.3, 0.6, 0.9, 1.2, 1.5, 1.8])
np.ones((3,2),dtype =np.int64)	#array([[1,1],[1, 1],[1, 1]],dtype = int64)
np.eye((2, 3))					#array([[1., 0., 0.], [0., 1., 0.]])創建一個單位矩陣
# np.logspace(stat,stop,num,base,dtype)參數:起始指數,結束指數,基,元素數據類型,包含結束值
np.logspace(1, 5, 5, base=2)	#array([2., 4., 8, 16, 32])

在這里插入圖片描述

3.數組計算

需要了解幾個常見的數組數據處理函數

# 數組元素切片
a = np.array([0,1,2,3])		#一維數組
print(a[:3])				#array([0,1,2]) 輸出前三個數
b = np.array([[0,1,2,3],[3,4,5,6],[6,7,8,9]])	#二維數組
print(b[:2])				#array([[0,1,2,3],[3,4,5,6]]) 輸出前兩行
# 改變數組的形狀
c = np.arange(12)
d = c.reshape(3,4)			
print(d)					#array([[0,1,2,3],[4,5,6,7],[8,9,10,11]]) 不改變當前數組,按照shape創建新的數組
c.reshape(-1,1)
print(c)					#array([[0],[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11]])
c.resize(3,4)			
print(c)					#array([[0,1,2,3],[4,5,6,7],[8,9,10,11]]) 改變當前數組,按照shape創建新的數組
數組間的運算

1.數組間的元素運算
在這里插入圖片描述

a = np.arange(4)
print(np.sum(a))		#6
print(np.sqrt(a))		#array([0.         ,1.         ,1.41421356, 1.73205081])

數組的軸和秩
在這里插入圖片描述
數組的堆疊運算
在這里插入圖片描述

x = np.array([1,2,3])
y = np.array([4,5,6])
print(np.stack((x,y),axis = 0)) #array([1,2,3],[4,5,6])
print(np.stack((x,y),axis = 1))	#array([1,4],[2,5],[3,6])
a = np.arrange(12).reshape(3,4)	#a = ([0,1,2,3],[4,5,6,7],[8,9,10,11])
print(np.sum(b,axis=0))		#array([12,15,18,21])
print(np.sum(b,axis=1))		#array([6,22,38])

2.數組加減法,對應元素相加減(進行運算的數組長度要一致)

a = np.ones([3,3])
b = np.eye([3,3])
print(a+b)			#array([[2,1,1],[1,2,1],[1,1,2]])

3.一維數組可以和多維數組相加,相加時將會將一維數組擴展至多維

a = np.array([1,2,3])
b = np.array([1,1,1],[2,2,2])
print(a+b)		#array([2,3,4],[3,4,5])
print(b**2)		#array([1,1,1],[4,4,4])

SUMMARIZE:數組間的四則運算,是對應元素加減乘除;
當數組中元素的數據類型不同時,精度低的數據類型會轉換成精度高的數據類型,然后再運算

矩陣運算

1.矩陣乘法,按矩陣相乘的規則運算

A = np.array([[1,2],[2,3]])
B = np.array([[4,2,1],[1,5,2]])
print(np.matmul(A,B))		#array([6,12,5],[11,19,8])

2.轉置和求逆

#轉置
print(np.transpose(A))		#array([1,2],[2,3])
#求逆
print(np.linalg.inv(A))		#array([-3,2],[2,-1])

CSDN鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM