sign python_python机器学习
1.os庫(kù)
2.pandas
2.1字典生成pandas
2.2字典生成pandas并序列化數(shù)據(jù)
3 .split
3.1 strip()
4.numpy
4.1 numpy.tile
4.2 numpy.argsort()
4.3數(shù)組索引
4.4從數(shù)組中選出最大最小的值
4.5 np.arange()
4.6 np.append()
4.7 np.mat與np.array
4.7.1乘法區(qū)別(np.dot,np.multiply)
4.7.2索引區(qū)別
4.7.3np.array((3,1))
4.7.4 argsort()的區(qū)別
4.7.5 讀取行的維數(shù)不同
4.8 np.mat與getA()
4.9 array的reshape
4.10 矩陣的排序.sort()與.sort(0)
4.11 np.sign()
5.字典和列表
5.1字典排序
5.2字典取值
5.3列表取值
5.4 list的del與remove
5.5 list.index()
6.matplotlib
6.1 matplotlib.lines
6.2 from matplotlib.font_manager import FontProperties
7.open讀取文件
8.KNN
9.當(dāng)數(shù)組運(yùn)算遇到dtype錯(cuò)誤
10.random
random.uniform()
11.sklearn
11.1 from sklearn.preprocessing import LabelEncoder
1 os庫(kù)
import os
print("當(dāng)前工作目錄為"+os.getcwd())
path="D:/my-install/Notepad++/new" #注:斜杠方向?qū)懛戳藭?huì)有問(wèn)題
os.chdir(path) #修改當(dāng)前目錄
print("當(dāng)前工作目錄為"+os.getcwd())
當(dāng)前工作目錄為D:\my-install\Notepad++
當(dāng)前工作目錄為D:\my-install\Notepad++\new
2 pandas
import pandas as pd
csv_path="E:/MachineL/tian.csv"
#這是存放在本地的tian.csv的路徑
df=pd.read_csv(csv_path)
#pandas可以解析文件
print(df.columns)
print(df.describe())
pandas讀不了excel,可以讀csv,data
Index(['城市', '標(biāo)題', '更新時(shí)間', '瀏覽量', '租金', '押金', '租賃方式', '房屋類型', '面積', '朝向樓層',
'小區(qū)', '小區(qū)鏈接', '區(qū)縣', '詳細(xì)地址', '中介公司', '房屋配套', '房源描述', '圖片地址', '頁(yè)面網(wǎng)址'],
dtype='object')
瀏覽量
count 47.000000
mean 115.531915
std 169.136149
min 3.000000
25% 10.500000
50% 26.000000
75% 162.500000
max 759.000000
2.1字典生成pandas
import pandas as pd
dict={'a':[1,2,3],'b':[3,4,5],'c':[9,0,3]}
dict_pd=pd.DataFrame(dict)
print(dict_pd)
a b c
0 1 3 9
1 2 4 0
2 3 5 3
請(qǐng)按任意鍵繼續(xù). .
2.2字典生成pandas并序列化數(shù)據(jù)
這是pandas數(shù)據(jù),需要把下列數(shù)據(jù)序列化
x1 x2 x3 x4
0 young myope no reduced
1 young myope no normal
2 young myope yes reduced
3 young myope yes normal
4 young hyper no reduced
5 young hyper no normal
6 young hyper yes reduced
7 young hyper yes normal
8 pre myope no reduced
9 pre myope no normal
10 pre myope yes reduced
11 pre myope yes normal
12 pre hyper no reduced
13 pre hyper no normal
14 pre hyper yes reduced
15 pre hyper yes normal
16 presbyopic myope no reduced
17 presbyopic myope no normal
18 presbyopic myope yes reduced
19 presbyopic myope yes normal
20 presbyopic hyper no reduced
21 presbyopic hyper no normal
22 presbyopic hyper yes reduced
23 presbyopic hyper yes normal
請(qǐng)按任意鍵繼續(xù). . .
'''關(guān)鍵代碼部分'''
from sklearn.preprocessing import LabelEncoder
le=LabelEncoder()
for col in dict_pd.columns:
dict_pd[col]=le.fit_transform(dict_pd[col])
print(dict_pd)
3 split分割字符串
string='www.baidu.com.www.baidu.com'
#split可以分割字符串并返回列表
print(string.split('.'))
#根據(jù)'.'進(jìn)行分割
print(string.split('.',1))
#分割一次
print(string.split('.')[:2])
#只保留前兩個(gè)
a,b,c=string.split('.')[:3]
#可分別給a,b,c進(jìn)行賦值,并且賦值的類型是str
print(a+" "+b+" "+c)
print(type(a))
['www', 'baidu', 'com', 'www', 'baidu', 'com']
['www', 'baidu.com.www.baidu.com']
['www', 'baidu']
www baidu com
3.1 strip()Python strip()與split()方法?www.cnblogs.com
4 numpy
4.1 numpy.tile
import numpy as np
a=np.array([1,2,3]) #建立數(shù)組
print(a)
a1=np.tile(a,(2,1))#增加數(shù)組的行數(shù)
a2=np.tile(a,(1,2))#增加數(shù)組的列數(shù)
print(a1)
print(a2)
[1 2 3]
[[1 2 3]
[1 2 3]]
[[1 2 3 1 2 3]]
請(qǐng)按任意鍵繼續(xù). . .
4.2 np.argsort()數(shù)組排序
import numpy as np
a=np.array([1,23,4,2])
#返回?cái)?shù)組a從小到大排序后的的索引
print(a.argsort())
[0 3 2 1]
請(qǐng)按任意鍵繼續(xù). . .
4.3 數(shù)組索引
import numpy as np
a=np.array([[1,2,2],[2,23,8],[23,34,3]])
#取所有行的第一列數(shù)據(jù)組成數(shù)組
b=a[:,0]
print("1")
print(b)
#表示第二行所有列
c=a[2,:]
print("2")
print(c)
#若不加逗號(hào)則表示行,前2行
b=a[:2]
print("3")
print(b)
1
[ 1 2 23]
2
[23 34 3]
3
[[ 1 2 2]
[ 2 23 8]]
請(qǐng)按任意鍵繼續(xù). . .
4.4 從數(shù)組中取最大最小值
import numpy as np
a=np.array([[1,2,2],[2,23,8],[23,34,3]])
#取的是每一列中的最小值組成矩陣
min=a.min(0)
print(min)
max=a.max(0)
print(max)
[1 2 2]
[23 34 8]
請(qǐng)按任意鍵繼續(xù). . .
4.5 np.arange()
import numpy as np
# 生成arry對(duì)象,三個(gè)參數(shù)是從1到5,以0.1為間隔
a=np.arange(1,5,0.1)
print(a)
a=np.arange(1,5)
print(a)
# range一樣的用法,只是range返回的是list
[1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2. 2.1 2.2 2.3 2.4 2.5 2.6 2.7
2.8 2.9 3. 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4. 4.1 4.2 4.3 4.4 4.5
4.6 4.7 4.8 4.9]
[1 2 3 4]
請(qǐng)按任意鍵繼續(xù). . .
4.6 np.append()
import numpy as np
a=np.zeros((1,4))
b=np.ones((3,4))
#axis=0,增加行數(shù),要求a,b列數(shù)相同
c=np.append(a,b,axis=0)
print(c)
a=np.zeros((1,3))
b=np.ones((1,1))
#axis=1,增加列數(shù),要求a,b行數(shù)相同
c=np.append(a,b,axis=1)
print(c)
# numpy提供了numpy.append(arr, values, axis=None)函數(shù)。對(duì)于參數(shù)規(guī)定,要么一個(gè)數(shù)組和一個(gè)數(shù)值;要么兩個(gè)數(shù)組。append函數(shù)返回的始終是一個(gè)一維數(shù)組。
#a是一維數(shù)組
a=np.arange(5)
b=np.zeros((2,3))
c=np.append(a,b)
print(c)
[[0. 0. 0. 0.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
[[0. 0. 0. 1.]]
[0. 1. 2. 3. 4. 0. 0. 0. 0. 0. 0.]
請(qǐng)按任意鍵繼續(xù). . .
4.7
4.7 .1np.array與np.mat的乘法
import numpy as np
'''
arr在讀取一行的時(shí)候,讀出的數(shù)據(jù)是一維,而矩陣讀的是二維
'''
Arr=np.array([[3,2],[1,4]])
BArr=np.array([[2,6],[3,2]])
#array是對(duì)應(yīng)元素相乘
a=Arr*BArr
print(a)
#矩陣乘法
a=np.dot(Arr,BArr)
print(a)
#矩陣乘法
aMat=np.mat(Arr)
bMat=np.mat(BArr)
a=aMat*bMat
print(a)
# 對(duì)應(yīng)元素相乘
a=np.multiply(aMat,bMat)
print(a)
[[ 6 12]
[ 3 8]]
[[12 22]
[14 14]]
[[12 22]
[14 14]]
[[ 6 12]
[ 3 8]]
請(qǐng)按任意鍵繼續(xù). . .
4.7.2索引區(qū)別
import numpy as np
a=np.array([[1,2,3,5],[1,2,3,4]])
b=np.mat([[1,3,6,5],[1,2,3,4]])
print(np.shape(b))
#讀取的是第0行
print(b[0])
#b[0][1]這種讀不出來(lái)
# print(b[0][1])
#讀取的是a[0][1]這個(gè)元素
print(a[0][1])
(2, 4)
[[1 3 6 5]]
2
請(qǐng)按任意鍵繼續(xù). . .
4.7.3 np.array((3,1))
np.array((3,1))生成的并不是3行一列的array,而是一個(gè)一維的數(shù)組,里面只有兩個(gè)元素,3和1
import numpy as np
a=np.array((4,3))
b=np.ones((1,3))
c=np.zeros((1,3))
print(np.shape(a))
print(np.shape(b))
print(np.shape(c))
(2,)
(1, 3)
(1, 3)
請(qǐng)按任意鍵繼續(xù). . .
4.7.4 argsort()
import numpy as np
'''
索引產(chǎn)生的結(jié)果不一樣
'''
aArr=np.array([[3,2],[234,235],[45,9]])
aMat=np.mat(aArr)
bArr=aArr[:,0]
bMat=aMat[:,0]
arr_ind=bArr.argsort()
mat_ind=bMat.argsort(0)
#(3,)
print(arr_ind)
#(3,1)
print(mat_ind)
[0 2 1]
[[0]
[2]
[1]]
請(qǐng)按任意鍵繼續(xù). . .
4.7.5 讀取行的維數(shù)不同
import numpy as np
'''
arr在讀取一行的時(shí)候,讀出的數(shù)據(jù)是一維,而矩陣讀的是二維
'''
aArr=np.array([[3,2,4],[234,235,4],[45,9,24]])
aMat=np.mat(aArr)
b=aArr[1,:]
print(np.shape(b))
c=aMat[1,:]
print(np.shape(c))
(3,)
(1, 3)
請(qǐng)按任意鍵繼續(xù). . .
4.8 getA用于矩陣轉(zhuǎn)化為array
>>> import numpy as np
>>> a=np.ones((3,1))
>>> a
array([[1.],
[1.],
[1.]])
>>> b=np.mat(a)
>>> b
matrix([[1.],
[1.],
[1.]])
>>> c=b.getA()
>>> c
array([[1.],
[1.],
[1.]])
>>>
4.9 數(shù)組的reshape()
import numpy as np
a=np.ones((4,3))
print(a)
#b是一維array
b=a[0,:]
print(b)
print(np.shape(b))
#可以把b轉(zhuǎn)成二維
b=b.reshape(1,-1)
print(np.shape(b))
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
[1. 1. 1.]
(3,)
(1, 3)
請(qǐng)按任意鍵繼續(xù). . .
4.10
import numpy as np
'''
矩陣的排序
'''
aArr=np.array([[3,2,4],[234,235,4],[45,9,24]])
aMat=np.mat(aArr)
aMat_1=aMat.copy()
#對(duì)每一行進(jìn)行排序
ind_row=aMat.sort()
#對(duì)每一列進(jìn)行排序
ind_col=aMat_1.sort(0)
print(aMat)
print(aMat_1)
[[ 2 3 4]
[ 4 234 235]
[ 9 24 45]]
[[ 3 2 4]
[ 45 9 4]
[234 235 24]]
請(qǐng)按任意鍵繼續(xù). . .
4.11 np.sign()
import numpy as np
#返回?cái)?shù)據(jù)的正負(fù)號(hào),正數(shù)用1表示,負(fù)數(shù)用-1表示,0用0表示
a=np.array([[-71,89],[0,-8]])
b=np.sign(a)
print(b)
[[-1 1]
[ 0 -1]]
請(qǐng)按任意鍵繼續(xù). . .
5字典
5.1字典排序
import operator
a={'a':'20','b':'39','c':'23','d':'89'}
#itemgetter(1)是按值排序,itemgetter(0)是按建排序
a = sorted(a.items(),key=operator.itemgetter(1),reverse=True)
print(a)
print(a[1][0])
[('d', '89'), ('b', '39'), ('c', '23'), ('a', '20')]
b
請(qǐng)按任意鍵繼續(xù). . .
5.2字典取值
#字典的取值
dict={'a':3,'b':5,'c':9}
#1
first=dict['a']
print(first)
#2當(dāng)用get時(shí),如沒(méi)有這個(gè)鍵可以設(shè)置為默認(rèn)值
second=dict.get('f',0)
print(second)
3
0
請(qǐng)按任意鍵繼續(xù). . .
5.3列表取值
list=['1','12','3','342','23']
#取所有值
a=list[:]
print(a)
#取前兩個(gè)值,下標(biāo)為0.1
b=list[:2]
print(b)
#取下標(biāo)為1,2的值
c=list[1:3]
print(c)
['1', '12', '3', '342', '23']
['1', '12']
['12', '3']
請(qǐng)按任意鍵繼續(xù). . .
5.4 list的remove與del
list=['23','2','23','45','8']
# 刪除的是下標(biāo)為1的元素
del(list[1])
print(list)
# 刪除的是第一個(gè)匹配的元素
list.remove('23')
print(list)
5.5 list.index()
listA=['有自己的房子','有工作']
a=listA.index('有工作')
print(a)
1
請(qǐng)按任意鍵繼續(xù). . .
6 matplotlibpython使用matplotlib:subplot繪制多個(gè)子圖 - CSDN博客?blog.csdn.net【Matplotlib】詳解圖像各個(gè)部分 - Chris*Chen - 博客園?www.cnblogs.comIPython繪圖和可視化---matplotlib 入門(mén)?www.cnblogs.com
6.1 matplotlib.lines
#以下是關(guān)鍵語(yǔ)句
import matplotlib.lines as mlines
ne=mlines.Line2D([],[],color='green',label='negative',marker=".")
po=mlines.Line2D([],[],color='red',label='positive',marker=".")
axs.legend(handles=[ne,po])
plt.show()
6.2 設(shè)置漢字格式 from matolotlib.font_manager import FontProperties
from matolotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)
fig,axs=plt.subplots(2,2,figsize=(13,8))
axs[0][0].set_xlabel("吃冰淇淋的數(shù)量",FontProperties=font)
7讀取文件
file=open("E:\MachineL\datingTestSet.txt")
#讀取一行,a是str類型
a=file.readline()
print(a)
#讀取所有內(nèi)容,b是list類型
b=file.readlines()
print(b)
8 KNN
from sklearn.neighbors import KNeighborsClassifier as KNN
neigh=KNN(n_neighbors=3,algorithm='auto')
neigh.fit(mat,labels)
predict_class=neigh.predict(test_vector)
9.當(dāng)數(shù)組運(yùn)算遇到dtype錯(cuò)誤
error=labelmat - h
TypeError: ufunc 'subtract' did not contain a loop with signature matching types dtype('
原因在于labelmat和h矩陣的dtype類型不一樣,可以使用labelmat.dtype打印,然后只需使用labelmat.astype('float64'),不一定寫(xiě)float64,只要兩者相同就行
10.random.uniformPython uniform() 函數(shù)?www.runoob.com
11sklearm
11.1 from sklearn.preprocessing import LabelEncoder
import pandas as pd
from sklearn.preprocessing import LabelEncoder
'''把字典生成pandas,并利用LabelEmcoder序列化'''
dict={'a':['good','good','bad'],'b':['red','black','red'],'c':['big','big','small']}
dict_pd=pd.DataFrame(dict)
print(dict_pd)
le=LabelEncoder()
for col in dict_pd.columns:
dict_pd[col]=le.fit_transform(dict_pd[col])
print(dict_pd)
a b c
0 good red big
1 good black big
2 bad red small
a b c
0 1 1 0
1 1 0 0
2 0 1 1
請(qǐng)按任意鍵繼續(xù). . .
總結(jié)
以上是生活随笔為你收集整理的sign python_python机器学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: eureka自我保护时间_阿里面试官问我
- 下一篇: python代码查询_python 查询