日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

sign python_python机器学习

發布時間:2024/10/8 python 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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机器学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。