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