随手查_python
學python中(主要是機器學習方面的)學到的一些函數和常見的處理方法,容易忘記所以記錄一下,持續更。。。
快速導航
- 🚀一些常見的函數:
- cat函數
- enumerate
- numpy.hstack/numpy.vstack
- plt.on/plt.off
- randint函數
- size函數
- slice函數
- solve函數
- sum函數
- tensor函數
- transpose
- Variable函數
- 🚀一些常見的方法
- 1、給數組中的多個位置的值賦值
- 2、數組中冒號(:)的使用
- 3、對csv文件的讀寫
- (1)創建一個csv文件并批量寫入數據
- (2)在csv文件中寫入新的一行
- (3)讀取某一行某一列或者某一個位置的數
- (4)刪除一行并保存
- 4、如何查看某一數據的類型
- 5、如何查看數組的維度
- 6、如何改變數組的維度
- 7、如何表示冪次方(python)
- 8、如何查看某一個函數或訓練過程花費的時間
- 🚀關于anaconda
🚀一些常見的函數:
cat函數
torch.cat 用于拼接兩個矩陣
import torchx=torch.zeros(3) y=torch.ones(3) z=torch.cat((x,y),0) print(z) x=torch.zeros(3,1) y=torch.ones(3,1) z=torch.cat((x,y),1) print(z)
不過這個只能用于tensor類型的拼接,numpy類的需要用到numpy.hstack或numpy.vstack,詳看下文。
enumerate
enumerate是枚舉,列出某一列的每一個數x2以及它們對應的序號x1。
y=list([11,22,33,44,55,66]) for x1,x2 in enumerate(y):print(x1,x2)numpy.hstack/numpy.vstack
import numpy as npa=[1,2,3,5] b=[5,6,7,8] c=np.vstack((a,b)) d=np.hstack((a,b)) print(c) print(d)plt.on/plt.off
可以顯示出訓練過程的所繪制圖表的變化
plt.on...... #(訓練過程)plt.offrandint函數
randint函數,可以在給定的范圍內隨機取一個或多個整數
random.randint() 只能取一個整數
numpy.random.randint() 可以通過設置取得多個整數
size函數
參數0表示查詢行數,參數1表示查詢列數
a=torch.zeros(2,3) a[0,0]=1 a[0,1]=2 a[0,2]=3 a[1,0]=4 a[1,1]=5 a[1,2]=6 print(a) y=a.size(1) # 0是行數,1是列數 print(y) x=np.size(a,1) print(x)slice函數
slice函數,即切片函數,可以從已知數組中取部分連續的數據。
import torchx=torch.linspace(0,9,10) print(x) slice1=slice(0,5,1) # 在第1到第5個數中,步長為1,每個都取 slice2=slice(0,6,2) # 在第1到第6個中,步長為2,每隔一個取一個 y=x[slice1] print(y) y=x[slice2] print(y)solve函數
from sympy import * x= symbols('x') print(solve(x**2+5*x+6,x))sum函數
sum函數:對矩陣中的全部或部分元素進行求和
# 特定維度求和函數 y=torch.ones(2,3) y[[0,0],[1,0]]=2 x1=torch.sum(y) # 對全部元素進行求和 print(x1) x2=torch.sum(y,dim=(0,1),keepdim=True) # 對行和列的元素進行求和且不改變維度 print(x2) x3=torch.sum(y,dim=(0,)) # 對各列進行求和,不保持原有維度 print(x3) x4=torch.sum(y,dim=(0,),keepdim=True) # 對各列進行求和,保持原有維度 print(x4) x5=torch.sum(y,dim=(1,)) # 對各行進行求和,不保持原有維度 print(x5) x6=torch.sum(y,dim=(1,),keepdim=True) # 對各行進行求和,保持原有維度 print(x6)
也可以用屬性sum對具體某一行或某一列進行求和
tensor函數
可以用tensor函數來定義數組
x=torch.tensor([[1,2,3],[4,5,6],[7,8,9]]) print(x)zeros函數和ones函數也可以定義數組,
x=torch.zeros(2) print(x) x=torch.zeros(2,1) print(x) x=torch.ones(2) print(x) x=torch.ones(2,1) print(x)transpose
(1)torch.transpose(y,1,0) 表示第0維和第1維互換,比如對于一個二維數組,若換之前是2×3數組,換之后是3×2數組。
# 用transpose對數組進行維度互換 y=torch.zeros(2,3) y[[0,0],[1,0]]=2 print(y) x=torch.transpose(y,1,0) print(x)
(2)對于三維數組,tensor.transpose(y,1,2) 表示第1維和第2維互換,變換之前是2×3×4數組,變換后是2×4×3數組。
Variable函數
把tensor定義為torch.autograd.Variable變量后,可以擁有autograd包中的屬性,比如通過 .data 訪問tensor中的所有變量;通過 .backward() 反向傳播更新參數。
🚀一些常見的方法
1、給數組中的多個位置的值賦值
import torchx=torch.zeros(4,4) print(x) x[[0,1,2,3],[0,1,2,3]]=8 # 給[0,0],[1,1],[2,2],[3,3]位置賦值8 print(x)2、數組中冒號(:)的使用
import torchx=torch.tensor([[1,2,3],[4,5,6],[7,8,9]]) print(x)print(x[:,1]) # 只有冒號表全部,表示x的第2列 print(x[1,:]) # 表示x的第2行print(x[:,0:1]) # 冒號前表示起,冒號后表示止,0到1其實打印的是第一例 print(x[1:2,:]) # 1到2,表示第2橫 print(x[:,1:]) # 表示第2列起后的全部,在這里就表示第2列和第3列print(x[:,-1:]) # 表示最后1列 print(x[:,:-1]) # 表示除最后1列的全部print(x[:,-2:]) # 表示最后2列 print(x[:,:-2]) # 表示除最后2列的全部3、對csv文件的讀寫
(1)創建一個csv文件并批量寫入數據
首先需要在當前目錄新建一個csv文件,
【File】→【New】→【File】,起文件名并把文件名后綴設置為 .csv 即可。
相比較與csv的操作,俺覺得用pandas對csv文件進行操作是比較簡單方便的。
(2)在csv文件中寫入新的一行
import pandas as pddf=pd.read_csv("testdataset_2.csv") print(df) print(' ') df.loc[8]=[1,1,1,1] # 對第8行寫入新的數據 print(df)
Notice:
如果是剛創建的一個新的csv文件,里面什么都沒有,此時寫入會出錯
給這個文件隨便加個表頭(手動在第一行寫入一行)就就可解決這個問題
(3)讀取某一行某一列或者某一個位置的數
import pandas as pddf=pd.read_csv("testdataset_2.csv") print(df)x1=df.loc[2] # 讀取第3行數據 x2=df.loc[2,:] # 讀取第3行數據 x3=df.iloc[2,:] # 讀取第3行數據x6=df.iloc[:,2] # 讀取第3列數據x7=df.iloc[2,0] # 讀取第3行第1列數據print(x1) print(x2) print(x3) print(x6) print(x7)
(4)刪除一行并保存
df=pd.read_csv("testdataset_2.csv") print(df) df.drop([0],inplace=True) # 刪去第1行 print(df) df.to_csv("testdataset_2.csv",index=False) # 保存到文件中
Notice:
inplace=True 才能夠刪除成功;要用語句 df.to_csv寫入到文件中,才能對文件進行改動,不然就只是改動了df而已
4、如何查看某一數據的類型
num1=20.0 num2=20 print(type(num1)) print(type(num2))5、如何查看數組的維度
import torcha=torch.ones(2,2,2) print(a.ndim)6、如何改變數組的維度
用reshape函數
import torcha=torch.ones(4) print(a) print(a.ndim) a=a.reshape(1,-1) print(a) print(a.ndim)7、如何表示冪次方(python)
a=2**3 print(a)8、如何查看某一個函數或訓練過程花費的時間
print("Start train...")start = time.perf_counter()self.train(cases, labels, 200, 0.08, 0.1)end = time.perf_counter()print("Training complete! Time used: %.2f s"%(end - start))🚀關于anaconda
我對anaconda的理解就是這是一個管理環境的工具(python工程都需要運行在一定的),每一個環境都有特定的python版本、以及一定的庫。
一些常用的命令:
關于環境管理:
1、創建一個新的環境(python版本為3.9.0):
2、查看當前已創建的環境
conda env list3、激活已創建的環境
activate EnvironmentName(具體的環境名)4、刪除已創建的環境
conda create -n EnvieonmentName(自定義環境名) --all關于環境中包的管理:
1、下載某一個包(庫)
下載具體版本的包
pip install PackageName(具體的包名)=1.2.02、查看某一環境中已下載的包
先激活該環境,然后
3、查看某一包的具體信息:
pip show PackageName(包的具體的名字)總結
以上是生活随笔為你收集整理的随手查_python的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UG NX二次开发(C#)-装配-删除阵
- 下一篇: websocket python爬虫_p