第10-11周Python學(xué)習(xí)周記

&關(guān)于計(jì)劃:

利用課余時(shí)間,對(duì)python進(jìn)行三個(gè)并發(fā)進(jìn)程式的學(xué)習(xí):

1.閱讀西瓜書(《機(jī)器學(xué)習(xí)》);

2.對(duì)于python相關(guān)庫(kù)的學(xué)習(xí)(參考簡(jiǎn)書文檔);

3.時(shí)間允許的話,盡可能了解一些身為程序員必要掌握的知識(shí)(例如json,參考于網(wǎng)絡(luò)資源)。




&小結(jié)時(shí)間:第10~11周

&學(xué)習(xí)內(nèi)容:

1.閱讀了《機(jī)器學(xué)習(xí)》中第一章的《基本術(shù)語》部分;

2.關(guān)于切片(簡(jiǎn)化指定索引范圍的索引操作):

a.

代碼:

>>> eg=['apple','banana','pear']

>>> eg[:3]

['apple', 'banana', 'pear']

eg[:3]表示從索引0開始取,直到索引3為止,但不包括索引3。即索引0,1,2,正好是3個(gè)元素。

b.從索引1開始,取出2個(gè)元素出來:

>>> eg[1:3]

['banana', 'pear']

c.從倒數(shù)第二個(gè)元素開始取值:

>>> eg[-2:]

['banana', 'pear']

d.可以通過切片輕松取出某一段數(shù)列:

首先創(chuàng)建一個(gè)0-99的數(shù)列:

>>> L = list(range(100))

>>> L

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

取前十個(gè)數(shù):

>>> L[:10]

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

取后十個(gè)數(shù):

>>> L[-10:]

[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

前十個(gè)數(shù),每?jī)蓚€(gè)取一個(gè):

>>> L[:10:2]

[0, 2, 4, 6, 8]

所有數(shù),每五個(gè)取一個(gè):

>>> L[::5]

[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]

3.關(guān)于Numpy(摘要):

a.關(guān)于隨機(jī)生成數(shù)列:

>>> import numpy as np

>>> np.arange(60,80,5)? ? ? ?

? ? ? ? ? ? ? ? ? ? #以5為步從60到80(不包括80)間取? ? ? ? ? ? ? ? ? ? ? ? 數(shù),返回一個(gè)數(shù)組

array([60, 65, 70, 75])

>>> np.linspace(0,2,9)? ? ? ?

? ? ? ? ? ? ? ? ? ? ? #從0到2取9個(gè)數(shù),返回一個(gè)數(shù)組

array([ 0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])

b.關(guān)于矩陣乘積:

>>> a = np.array([[1,1],

... [0,1]])

>>> b = np.array([[2,0],

... [3,4]])

>>> a*b #元素級(jí)別乘積

array([[2, 0],

[0, 4]])

>>> a.dot(b) #矩陣乘積1

array([[5, 4],

[3, 4]])

>>> np.dot(a,b) #矩陣乘積2

array([[5, 4],

[3, 4]])

c.矩陣的轉(zhuǎn)置:

>>> x = np.arange(16).reshape((4,4))

>>> x

array([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11],

[12, 13, 14, 15]])

>>> np.transpose(x)

array([[ 0, 4, 8, 12],

[ 1, 5, 9, 13],

[ 2, 6, 10, 14],

[ 3, 7, 11, 15]])

d.數(shù)組的堆疊:

>>> x = np.arange(4).reshape((2,2))

>>> y = np.arange(4).reshape((2,2))

>>> x

array([[0, 1],[2, 3]])

>>> y

array([[0, 1],

[2, 3]])

>>> np.vstack((x,y)) #垂直堆疊

array([[0, 1],

[2, 3],

[0, 1],

[2, 3]])

>>> np.hstack((x,y)) #水平堆疊

array([[0, 1, 0, 1],

[2, 3, 2, 3]])

>>> x = np.arange(8)

>>> x

array([0, 1, 2, 3, 4, 5, 6, 7])

>>> x[:,newaxis]

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #利用newaxis將1D數(shù)組作為? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 列堆疊到2D數(shù)組中

array([[0],

[1],

[2],

[3],

[4],

[5],

[6],

[7]])

>>> x

array([0, 1, 2, 3, 4, 5, 6, 7])

>>> y = x

>>> y

array([0, 1, 2, 3, 4, 5, 6, 7])

>>> np.column_stack((x,y))

? ? ? ? ? ? ? ? ? ? ? ? ? #利用column_stack(將1D數(shù)組作? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 為列堆疊到2D數(shù)組中

array([[0, 0],

[1, 1],

[2, 2],

[3, 3],

[4, 4],

[5, 5],

[6, 6],

[7, 7]])

3.用requests模塊從Web下載文件(參考網(wǎng)絡(luò)資源進(jìn)行學(xué)習(xí))

A.用requests.get()函數(shù)下載一個(gè)網(wǎng)頁:

>>> import requests

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #requests.get()函數(shù)接收? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 一個(gè)要下載的URL字符串

>>> res = requests.get('http://www.gutenberg.org/cache/epub/1112/pg1112.txt')

>>> type(res)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #requests.get()函數(shù)返回? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 的是一個(gè)Response對(duì)象

<class 'requests.models.Response'>

>>> res.status_code == requests.codes.ok

? ? ? ? ? ? ? ? ? ? ? ? #判斷對(duì)這個(gè)網(wǎng)頁的請(qǐng)求是否成功

True

>>> len(res.text)? ? ? ? ? ? #下載的頁面作為一個(gè)字? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 符串保存在Response? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 對(duì)象的text變量中

178981? ? ? ? ? ? ? ? ? ? ? #調(diào)用len函數(shù)查看其長(zhǎng)度

該URL指向一個(gè)文本頁面,其中包含整部羅密歐與朱麗葉,它是由古登堡計(jì)劃提供的。

B.結(jié)合for循環(huán)和Response對(duì)象的iter_content()方法將下載的文件保存到硬盤

圖片發(fā)自簡(jiǎn)書App

圖片發(fā)自簡(jiǎn)書App

4.json模塊:

a.用loads()函數(shù)讀取JSON:

>>> sojd = '{"name":"Jack","isCat":true,"miceVaught":0}'

>>> import json

>>> jdapd = json.loads(sojd)

>>> jdapd

{'isCat': True, 'miceVaught': 0, 'name': 'Jack'}

b.用dumps函數(shù)寫出JSON

>>> pd = jdapd

>>> pd

{'isCat': True, 'miceVaught': 0, 'name': 'Jack'}

>>> sojd1 = json.dumps(pd)

>>> sojd1

'{"isCat": true, "miceVaught": 0, "name": "Jack"}'

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容