python矩陣乘法_魚書——第一章 Python入門

1f289e5aa63a6b38b135cc18cf3c327a.png640?wx_fmt=svg

one 第一章

640?wx_fmt=svg

1.1 Python是什么

Python是一個簡單、易讀、易記的編程語言,而且是開源的,可以免費地自由使用。Python可以用類似英語的語法編寫程序,編譯起來也不費力,因此我們可以很輕松地使用Python。特別是對首次接觸編程的人士來說,Python是最合適不過的語言。事實上,很多高校和大專院校的計算機課程均采用Python作為入門語言。Python是最適合數據科學領域的編程語言。而且,Python具有受眾廣的優秀品質,從初學者到專業人士都在使用。因此,為了完成本書的從零開始實現深度學習的目標,Python可以說是最合適的工具。

1.2? Python的安裝

Python有2.x和3.x的區別,現在使用的一般均為Python3.x。兩個常用的庫:NumPy是用于數值計算的庫,提供了很多高級的數學算法和便利的數組(矩陣)操作方法。本書中將使用這些便利的方法來有效地促進深度學習的實現。Matplotlib是用來畫圖的庫。使用Matplotlib能將實驗結果可視化,并在視覺上確認深度學習運行期間的數據。

1.3Python解釋器

可以配置PyCharm進行編寫。我對PyCharm的認識大概相當于Rstudio之對于R軟件的作用。方便程序的編寫、運行調試。在PyCharm界面左下角處點擊"Python consolo"就會出來Python的交互頁面。也相當于Python解釋器的對話模型。

1.3.1 基本運算

*表示乘法,/表示除法,**表示乘方(3**2是3的2次方)。另外,在Python 2.x中,整數除以整數的結果是整數,比如,7 ÷ 5的結果是1。但在Python 3.x中,整數除以整數的結果是小數(浮點數)。

1.3.2 數據類型

編程中有數據類型(data type)這一概念。數據類型表示數據的性質,有整數、小數、字符串等類型。Python中的type()函數可以用來查看數據類型。

1.3.3 變量

可以使用x或y等字母定義變量(variable)。此外,可以使用變量進行計算,也可以對變量賦值。Python是屬于“動態類型語言”的編程語言,所謂動態,是指變量的類型是根據情況自動決定的。“#”是注釋的意思,它后面的文字會被Python忽略。

1.3.4 列表

除了單一的數值,還可以用列表(數組)匯總數據。

70a66ec76536f716fcb3e9f0be05cbc4.png

元素的訪問是通過a[0]這樣的方式進行的。[]中的數字稱為索引(下標),索引從0開始(索引0對應第一個元素)。此外,Python的列表提供了切片(slicing)這一便捷的標記法。使用切片不僅可以訪問某個值,還可以訪問列表的子列表(部分列表)。

1.3.5 字典

列表根據索引,按照0, 1, 2, ...的順序存儲值,而字典則以鍵值對的形式存儲數據。字典就像《新華字典》那樣,將單詞和它的含義對應著存儲起來。

e9839acea6f843c8627c7e52e55d2fa8.png

1.3.6 布爾型

Python中有bool型。bool型取True或False中的一個值。針對bool型的運算符包括and、or和not (針對數值的運算符有+、-、*、/等,根據不同的數據類型使用不同的運算符)。

376e561dff020fb0ad0ecb18a0b7c84b.png

1.3.7 if語句

根據不同的條件選擇不同的處理分支時可以使用if/else語句。
>>> hungry = True>>> if hungry:...     print("I’m so hungry.")...     I’m so hungry.>>> hungry = False>>> if hungry:...     print("I’m so hungry.")... else:...     print("I’m not hungry at all.")...     print("I'm tired.")...     I’m not hungry at all.I'm tired.
Python中的空白字符具有重要的意義。上面的if語句中,if hungry:下面的語句開頭有4個空白字符。它是縮進的意思,表示當前面的條件(if hungry)成立時,此處的代碼會被執行。這個縮進也可以用tab表示,Python中推薦使用空白字符。

1.3.8 for 語句

進行循環處理時可以使用for語句,可以按順序訪問列表等數據集合中的各個元素。
>>> for i in ["I","am","not","a","good","guy"]:...     print(i)...     Iamnotagoodguy

1.3.9 函數

可以將一連串的處理定義成函數 (function)。
>>> def hello():...     print("Hello World!")...     hello()Hello World!
此外,函數可以取參數。
>>> def hello(object):...     print("Hello " + object + "!")...>>> hello("cat")Hello cat!

1.4? NumPy

>>> import numpy as np
Python中使用import語句來導入庫。這里的import numpy as np,直譯的話就是“將numpy作為np導入”的意思。通過寫成這樣的形式,之后NumPy相關的方法均可通過np來調用。要生成NumPy數組,需要使用np.array()方法。np.array()接收Python列表作為參數,生成NumPy數 組(numpy.ndarray)。
>>> x = np.array([1.0, 2.0, 3.0])>>> print(x)[ 1. 2. 3.]>>> type(x)<class 'numpy.ndarray'>
下面是NumPy數組的算術運算的例子。
>>> x = np.array([1.0, 2.0, 3.0])>>> y = np.array([2.0, 4.0, 6.0])>>> x + y  # 對應元素的加法array([ 3.,  6., 9.])>>> x - yarray([ -1.,  -2., -3.])>>> x * y  # element-wise productarray([  2.,   8.,  18.])>>> x / yarray([ 0.5,  0.5,  0.5])
這里需要注意的是,數組x和數組y的元素個數是相同的(兩者均是元素個數為3的一維數組)。當x和y的元素個數相同時,可以對各個元素進行算術運算。如果元素個數不同,程序就會報錯,所以元素個數保持一致非常重要。另外,“對應元素的”的英文是element-wise,比如“對應元素的乘法”就是element-wise product。NumPy數組不僅可以進行element-wise運算,也可以和單一的數值(標量)組合起來進行運算。此時,需要在NumPy數組的各個元素和標量之間進行運算。
>>> x = np.array([1.0, 2.0, 3.0])>>> x / 2.0array([ 0.5,  1. ,  1.5]
NumPy不僅可以生成一維數組(排成一列的數組),也可以生成多維數組。
>>> A = np.array([[1, 2], [3, 4]])>>> print(A)[[1 2] [3 4]]>>> A.shape(2, 2)>>> A.dtypedtype('int64')
矩陣A的形狀可以通過shape查看,矩陣元素的數據類型可以通過dtype查看。NumPy中,形狀不同的數組之間也可以進行運算。之前的例子中,在2×2的矩陣A和標量10之間進行了乘法運算。在這個過程中,如圖1-1所示,標量10被擴展成了2 × 2的形狀,然后再與矩陣A進行乘法運算。這個巧妙的功能稱為廣播 (broadcast)。

21272c69174793114fef3eed90960dfd.png

我們通過下面這個運算再來看一個廣播的例子。
>>> A = np.array([[1, 2], [3, 4]])>>> B = np.array([10, 20])>>> A * Barray([[ 10, 40],       [ 30, 80]])

1.5? Matplotlib

在深度學習的實驗中,圖形的繪制和數據的可視化非常重要。Matplotlib是用于繪制圖形的庫,使用Matplotlib可以輕松地繪制圖形和實現數據的可視化。這里,我們來介紹一下圖形的繪制方法和圖像的顯示方法。可以使用matplotlib的pyplot模塊繪制圖形。話不多說,我們來看一個繪制sin函數曲線的例子。
import numpy as npimport matplotlib.pyplot as plt# 生成數據x = np.arange(0, 6, 0.1) # 以0.1為單位,生成0到6的數據y = np.sin(x)# 繪制圖形plt.plot(x, y)plt.show()

就會得到圖1-3:

db7880e7e1d43a9c9ce797d2e83c72d8.png

在剛才的sin函數的圖形中,我們嘗試追加cos函數的圖形,并嘗試使用pyplot的添加標題和x軸標簽名等其他功能。
import numpy as npimport matplotlib.pyplot as plt# 生成數據x = np.arange(0, 6, 0.1) # 以0.1為單位,生成0到6的數據y1 = np.sin(x)y2 = np.cos(x)# 繪制圖形plt.plot(x, y1, label="sin")plt.plot(x, y2, linestyle = "--", label="cos") # 用虛線繪制plt.xlabel("x") # x軸標簽plt.ylabel("y") # y軸標簽plt.title('sin & cos') # 標題plt.legend()plt.show()

就會得到圖1-4:

37d558b208476e688047f4c04401003d.png

今天就到這里啦!

大家都要加油鴨!

春風不度玉門關,

我佛不渡鐵憨憨。

雕欄玉砌應猶在,

點贊完了點在看。

? - end -??

圖文源魚書

公眾號:一枝花滿樓

7b75381ed4887a1e33dece36316690df.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396869.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396869.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396869.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入淺出面向對象分析與設計

深入淺出面向對象分析與設計書籍 下載位置&#xff1a;http://pan.baidu.com/s/1o7gmmuu轉載于:https://www.cnblogs.com/wlming/p/5160140.html

[SHOI2002]百事世界杯之旅

題目&#xff1a;“……在2002年6月之前購買的百事任何飲料的瓶蓋上都會有一個百事球星的名字。只要湊齊所有百事球星的名字&#xff0c;就可參加百事世界杯之旅的抽獎活動&#xff0c;獲得球星背包&#xff0c;隨聲聽&#xff0c;更克赴日韓觀看世界杯。還不趕快行動&#xff…

Oracle adviser,Oracle10g SQL tune adviser

Oracle10g SQL tune adviser簡單介紹本文簡單介紹下SQL Tuning Adviser的配置使用方法和一些相關知識點&#xff0c;如果了解SQL Tuning Adviser詳細信息&#xff0c;參看Oracle聯機文檔。本文對分析結果沒有詳細分析。一、自動SQL Tuning簡單介紹&#xff1a;1、優化模式&…

考托福

todo 香港的博士 轉載于:https://www.cnblogs.com/dunfentiao/p/5164028.html

keepalived vip ping不通_【干貨分享】OpenStack LVS負載均衡為什么不通?

背景介紹OpenStack環境Neutron 的安全組會向虛擬機默認添加 anti-spoof 的規則&#xff0c;將保證虛擬機只能發出&#xff0f;接收以本機Port為原地址或目的地址(IP、MAC)的流量&#xff0c;提高了云的安全性。但是LVS等需要綁定VIP的場景&#xff0c;默認流量是被攔截的。需要…

Docker安裝ssh,supervisor等基礎工具

2019獨角獸企業重金招聘Python工程師標準>>> Docker安裝ssh&#xff0c;supervisor等基礎工具 需要提前下載好官方的ubuntu鏡像&#xff0c;我這里使用的是ubuntu:14.04版本&#xff0c;這里安裝了一些基礎的工具ssh&#xff0c;curl&#xff0c;wget&#xff0c;vi…

中南大學 oracle試卷,數據庫原理期末復習(中南大學)數據庫原理、技術及應用2.ppt...

2014 春季 信息11,12 DB P,T&A-張祖平 數據庫原理、技術及應用 張祖平/Zhang Zuping 電子信息工程系 School of Information Science and Engineering,Central South University , zpzhangmail.csu.edu.cn 本章小結 關系模型中的相關概念 關系(集合)&#xff0c;性質&#…

Pandas時間差(Timedelta)

時間差(Timedelta)是時間上的差異&#xff0c;以不同的單位來表示。例如&#xff1a;日&#xff0c;小時&#xff0c;分鐘&#xff0c;秒。它們可以是正值&#xff0c;也可以是負值。可以使用各種參數創建Timedelta對象&#xff0c;如下所示 - 字符串 通過傳遞字符串&#xff0…

nginx集群_windows環境下搭建簡單Nginx+Tomcat集群

通俗點將&#xff0c;負載均衡就是因為訪問流量太大&#xff0c;導致項目訪問不流暢、甚至宕掉&#xff0c;所以通過一種分流的方式來緩解這種情況。一、 工具nginx-1.8.0apache-tomcat-6.0.33二、 目標實現高性能負載均衡的Tomcat集群&#xff1a;三、 步驟1、首先下載Nginx&a…

顏色傳感器TCS230及顏色識別電路(轉)

摘要 TCS230是美國TAOS公司生產的一種可編程彩色光到頻率的傳感器。該傳感器具有分辨率高、可編程的顏色選擇與輸出定標、單電源供電等特點&#xff1b;輸出為數字量&#xff0c;可直接與微處理器連接。文中主要介紹TCS230的原理和應用&#xff0c;以及色光和白平衡的知識&…

自定義對話框 提示:Unable to add window token null is not for an application

這是因為在new Dialog(context);的時候傳入的context是通過getApplicationContext()獲得的&#xff0c;這樣就會報錯。 把context的獲得方式改為MainActivity.this就好了。 轉載于:https://www.cnblogs.com/qlong8807/p/5167560.html

[51Nod 1218] 最長遞增子序列 V2 (LIS)

傳送門 Description 數組A包含N個整數。設S為A的子序列且S中的元素是遞增的&#xff0c;則S為A的遞增子序列。如果S的長度是所有遞增子序列中最長的&#xff0c;則稱S為A的最長遞增子序列&#xff08;LIS&#xff09;。A的LIS可能有很多個。例如A為&#xff1a;1 3 2 0 4&#…

linux如何全局搜索目錄,Linux 全目錄全文搜索

文件內容搜索1grep -r root /home/ray/dev/media/wyquery/*通過這種方法來尋找數據庫配置文件的目錄其他$ grep “被查找的字符串” 文件名例子&#xff1a;在當前目錄里第一級文件夾中尋找包含指定字符串的.in文件grep “thermcontact” */*.in從文件內容查找與正則表達式匹配…

mysql命令行導入和導出數據

首先打開命令窗口,輸入命令:mysql -h localhost -u selffabu -p 連接成功后,進行下面的操作 MySQL中導出CSV格式數據的SQL語句樣本如下&#xff1a; Sql代碼select * from test_info into outfile /tmp/test.csv fields terminated by , optionally enclosed by " esc…

Python 拷貝對象(深拷貝deepcopy與淺拷貝copy)

http://www.jb51.net/article/15714.htm 1. copy.copy 淺拷貝 只拷貝父對象&#xff0c;不會拷貝對象的內部的子對象。2. copy.deepcopy 深拷貝 拷貝對象及其子對象 一個很好的例子&#xff1a; 1 import copy2 a [1, 2, 3, 4, [a, b]] #原始對象3 4 b a #賦值&#xff0c…

7.組件連線(貝塞爾曲線)--從零起步實現基于Html5的WEB設計器Jquery插件(含源碼)...

上節講到如何創建組件&#xff0c;清除設計器視圖&#xff0c;以及設計視圖的持久化和恢復&#xff0c;本節將重點講如何實現組件間的連線&#xff0c;前面章節有提到為了方便從持久化文件中恢復&#xff0c;組件和連線是分別存放的&#xff1a;nodes和lines對象&#xff0c;兩…

linux bind命令,LINUX命令bind-系統管理-顯示或設置鍵盤按鍵與其相關的功能

bind命令 用于顯示和設置命令行的鍵盤序列綁定功能。通過這一命令&#xff0c;可以提高命令行中操作效率。您可以利用bind命令了解有哪些按鍵組合與其功能&#xff0c;也可以自行指定要用哪些按鍵組合。語法bind(選項)選項-d&#xff1a;顯示按鍵配置的內容&#xff1b;-f&…

定位排查工作流的計算結果數據量不符合預期的方法

近期有發現一些用戶在咨詢&#xff0c;為什么數據從數據源出來后&#xff0c;經過了一些計算&#xff0c;結果不符合預期了。最常見的是說&#xff0c;為什么我的數據在Mysql里有xx條&#xff0c;怎么到MaxCompute里算了下結果變了。因為這是兩個不同的系統&#xff0c;我們又沒…

canvas 插件_基于canvas的JavaScript 二維碼生成工具——QRCanvas

介紹在我們日常的開發中&#xff0c;特別是在現代的社會環境下&#xff0c;二維碼的應用可謂是豐富多彩&#xff0c;各種各樣讓人眼花繚亂的二維碼&#xff0c;可見二維碼已經滲透進我們生活的方方面面&#xff0c;也可以說目二維碼確確實實方便了我們的生活。因為作為開發人員…

spring cloud feign 上傳文件報not a type supported by this encoder解決方案

上傳文件調用外部服務報錯&#xff1a; not a type supported by this encoder 查看SpringFormEncoder類的源碼&#xff1a; 1 public class SpringFormEncoder extends FormEncoder2 {3 4 public SpringFormEncoder()5 {6 this(((Encoder) (new feign.codec.…