Python 《資料科學入門》 讀書筆記第四章 2018-8-2011:30開始
阿新 • • 發佈:2018-12-05
接著看這本書。。看到第三章的時候,腦闊又疼了。用的時候再說吧,而且R軟體功能很強大。蹦過去了。
接著到了第四章。我一想說第四章講的線性代數。。我特麼高等代數都學過還看這個幹嘛啊。
又到了第五章,將統計,我說真巧,我就是統計專業的。
又到了第六章,一看,哇概率論,他咋知道我的專業是概率論與數理統計。看了一會,算了,還是從第四章開始看吧。要不一會書都直接翻過去了。
不說加法。比較容易理解。除了列表和元組的加法是列表新增元素外,其他的加法都是數學加法。
乘法
暫時在我以前寫演算法過程中,經常用到的乘法有這幾種命令。
import numpy as np a=... b=... #這種方式是對應元素相乘完再相加 np.dot(a,b) #這種方式是對應元素相乘,如果再相加相當於dot函式 np.multiply(a,b) np.dot(a,b)=sum(np.multiply()) #這種方式是直接乘 a*b
這三種方法。對於不同的資料結構有不同的使用特點。
list 格式
只能用dot函式與multiply函式
import numpy as np
a=[1,2,3]
b=[4,5,6]
np.dot(a,b)
np.multiply(a,b)
sum(np.multiply(a,b)) #發現這個值與dot值相同
如果直接使用a*b就會報錯
元組
其實在我的印象裡,元組基本上所有的性質和列表差不多。除了元組不能更改。就是說在列表中,你可以更改已經賦值過的值,但是元組不行。
陣列
在陣列中,可以用直接用乘法“*”
import numpy as np a=np.array([1,2,3]) b=np.array([4,5,6]) #以下這兩個值是一樣的 a*b np.multiply(a,b) #這個就是正常的 np.dot(a,b)
矩陣
在矩陣中,必須要考慮維數的影響,比如a,b都是行向量,有的乘法就不能直接算
ipmort numpy as np a=np.matrix([1,2,3]) b=np.matrix([4,5,6]) np.dot(a,b) #出錯 np.dot(a,b.T) #正確 np.multiply(a,b) #常規正確 np.multiply(a,b.T) #程式不報錯,但是結果迥異 np.multiply(a.T,b) #程式不報錯,結果為上一行命令的轉置 a*b #結果報錯 a.T*b #出現3×3矩陣 a*b.T #出現3×3矩陣
也就是說矩陣的乘法最為複雜。我在寫演算法的時候總是要想半天我要得的矩陣最終是幾乘幾的,然後再一點一點算,如果還是不確定的話,就拿筆算出來一兩個,一對就能確定無疑了。
字典
如果有一天我想要不作處理直接用字典做乘法,我的程式設計生涯可能就該結束了。
混合使用
至於混合著使用,也可以
import numpy as np
a=np.matrix([1,2,3])
b=np.array([4,5,6])
np.dot(a,b)
np.multiply(a,b)
但是在寫一些演算法的過程中,因為很多內建函式返回的值型別都不一樣,有的返回陣列,有的返回矩陣,有的返回元組等等。我一般都是加上一個型別轉換函式,將所有的型別都統一。要不然型別混亂的時候,對於寫演算法得出結果來實在是藍瘦。所以我建議將資料都轉換成相同的型別。
大概第四章就結束了。原理部分沒必要看。
2018-8-20 13:07