sign python_python机器学习
1.os庫
2.pandas
2.1字典生成pandas
2.2字典生成pandas并序列化數據
3 .split
3.1 strip()
4.numpy
4.1 numpy.tile
4.2 numpy.argsort()
4.3數組索引
4.4從數組中選出最大最小的值
4.5 np.arange()
4.6 np.append()
4.7 np.mat與np.array
4.7.1乘法區別(np.dot,np.multiply)
4.7.2索引區別
4.7.3np.array((3,1))
4.7.4 argsort()的區別
4.7.5 讀取行的維數不同
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.當數組運算遇到dtype錯誤
10.random
random.uniform()
11.sklearn
11.1 from sklearn.preprocessing import LabelEncoder
1 os庫
import os
print("當前工作目錄為"+os.getcwd())
path="D:/my-install/Notepad++/new" #注:斜杠方向寫反了會有問題
os.chdir(path) #修改當前目錄
print("當前工作目錄為"+os.getcwd())
當前工作目錄為D:\my-install\Notepad++
當前工作目錄為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(['城市', '標題', '更新時間', '瀏覽量', '租金', '押金', '租賃方式', '房屋類型', '面積', '朝向樓層',
'小區', '小區鏈接', '區縣', '詳細地址', '中介公司', '房屋配套', '房源描述', '圖片地址', '頁面網址'],
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
請按任意鍵繼續. .
2.2字典生成pandas并序列化數據
這是pandas數據,需要把下列數據序列化
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
請按任意鍵繼續. . .
'''關鍵代碼部分'''
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('.'))
#根據'.'進行分割
print(string.split('.',1))
#分割一次
print(string.split('.')[:2])
#只保留前兩個
a,b,c=string.split('.')[:3]
#可分別給a,b,c進行賦值,并且賦值的類型是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]) #建立數組
print(a)
a1=np.tile(a,(2,1))#增加數組的行數
a2=np.tile(a,(1,2))#增加數組的列數
print(a1)
print(a2)
[1 2 3]
[[1 2 3]
[1 2 3]]
[[1 2 3 1 2 3]]
請按任意鍵繼續. . .
4.2 np.argsort()數組排序
import numpy as np
a=np.array([1,23,4,2])
#返回數組a從小到大排序后的的索引
print(a.argsort())
[0 3 2 1]
請按任意鍵繼續. . .
4.3 數組索引
import numpy as np
a=np.array([[1,2,2],[2,23,8],[23,34,3]])
#取所有行的第一列數據組成數組
b=a[:,0]
print("1")
print(b)
#表示第二行所有列
c=a[2,:]
print("2")
print(c)
#若不加逗號則表示行,前2行
b=a[:2]
print("3")
print(b)
1
[ 1 2 23]
2
[23 34 3]
3
[[ 1 2 2]
[ 2 23 8]]
請按任意鍵繼續. . .
4.4 從數組中取最大最小值
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]
請按任意鍵繼續. . .
4.5 np.arange()
import numpy as np
# 生成arry對象,三個參數是從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]
請按任意鍵繼續. . .
4.6 np.append()
import numpy as np
a=np.zeros((1,4))
b=np.ones((3,4))
#axis=0,增加行數,要求a,b列數相同
c=np.append(a,b,axis=0)
print(c)
a=np.zeros((1,3))
b=np.ones((1,1))
#axis=1,增加列數,要求a,b行數相同
c=np.append(a,b,axis=1)
print(c)
# numpy提供了numpy.append(arr, values, axis=None)函數。對于參數規定,要么一個數組和一個數值;要么兩個數組。append函數返回的始終是一個一維數組。
#a是一維數組
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.]
請按任意鍵繼續. . .
4.7
4.7 .1np.array與np.mat的乘法
import numpy as np
'''
arr在讀取一行的時候,讀出的數據是一維,而矩陣讀的是二維
'''
Arr=np.array([[3,2],[1,4]])
BArr=np.array([[2,6],[3,2]])
#array是對應元素相乘
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)
# 對應元素相乘
a=np.multiply(aMat,bMat)
print(a)
[[ 6 12]
[ 3 8]]
[[12 22]
[14 14]]
[[12 22]
[14 14]]
[[ 6 12]
[ 3 8]]
請按任意鍵繼續. . .
4.7.2索引區別
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]這種讀不出來
# print(b[0][1])
#讀取的是a[0][1]這個元素
print(a[0][1])
(2, 4)
[[1 3 6 5]]
2
請按任意鍵繼續. . .
4.7.3 np.array((3,1))
np.array((3,1))生成的并不是3行一列的array,而是一個一維的數組,里面只有兩個元素,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)
請按任意鍵繼續. . .
4.7.4 argsort()
import numpy as np
'''
索引產生的結果不一樣
'''
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]]
請按任意鍵繼續. . .
4.7.5 讀取行的維數不同
import numpy as np
'''
arr在讀取一行的時候,讀出的數據是一維,而矩陣讀的是二維
'''
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)
請按任意鍵繼續. . .
4.8 getA用于矩陣轉化為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 數組的reshape()
import numpy as np
a=np.ones((4,3))
print(a)
#b是一維array
b=a[0,:]
print(b)
print(np.shape(b))
#可以把b轉成二維
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)
請按任意鍵繼續. . .
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()
#對每一行進行排序
ind_row=aMat.sort()
#對每一列進行排序
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]]
請按任意鍵繼續. . .
4.11 np.sign()
import numpy as np
#返回數據的正負號,正數用1表示,負數用-1表示,0用0表示
a=np.array([[-71,89],[0,-8]])
b=np.sign(a)
print(b)
[[-1 1]
[ 0 -1]]
請按任意鍵繼續. . .
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
請按任意鍵繼續. . .
5.2字典取值
#字典的取值
dict={'a':3,'b':5,'c':9}
#1
first=dict['a']
print(first)
#2當用get時,如沒有這個鍵可以設置為默認值
second=dict.get('f',0)
print(second)
3
0
請按任意鍵繼續. . .
5.3列表取值
list=['1','12','3','342','23']
#取所有值
a=list[:]
print(a)
#取前兩個值,下標為0.1
b=list[:2]
print(b)
#取下標為1,2的值
c=list[1:3]
print(c)
['1', '12', '3', '342', '23']
['1', '12']
['12', '3']
請按任意鍵繼續. . .
5.4 list的remove與del
list=['23','2','23','45','8']
# 刪除的是下標為1的元素
del(list[1])
print(list)
# 刪除的是第一個匹配的元素
list.remove('23')
print(list)
5.5 list.index()
listA=['有自己的房子','有工作']
a=listA.index('有工作')
print(a)
1
請按任意鍵繼續. . .
6 matplotlibpython使用matplotlib:subplot繪制多個子圖 - CSDN博客?blog.csdn.net【Matplotlib】詳解圖像各個部分 - Chris*Chen - 博客園?www.cnblogs.comIPython繪圖和可視化---matplotlib 入門?www.cnblogs.com
6.1 matplotlib.lines
#以下是關鍵語句
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 設置漢字格式 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("吃冰淇淋的數量",FontProperties=font)
7讀取文件
file=open("E:\MachineL\datingTestSet.txt")
#讀取一行,a是str類型
a=file.readline()
print(a)
#讀取所有內容,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.當數組運算遇到dtype錯誤
error=labelmat - h
TypeError: ufunc 'subtract' did not contain a loop with signature matching types dtype('
原因在于labelmat和h矩陣的dtype類型不一樣,可以使用labelmat.dtype打印,然后只需使用labelmat.astype('float64'),不一定寫float64,只要兩者相同就行
10.random.uniformPython uniform() 函數?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
請按任意鍵繼續. . .
總結
以上是生活随笔為你收集整理的sign python_python机器学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eureka自我保护时间_阿里面试官问我
- 下一篇: 非word格式文件700015怎么办_v