0、前言:
- 數(shù)組:計算機領(lǐng)域的概念
- 矩陣:數(shù)學(xué)領(lǐng)域的概念
- 對于Numpy而言,矩陣是數(shù)組的分支
1、創(chuàng)建矩陣:
- 字符串創(chuàng)建矩陣:mat1 = np.matrix(‘1 2;3 4’)
- 列表形式創(chuàng)建矩陣:mat2 = np.matrix([[5, 6], [7, 8]])
- 通過數(shù)組創(chuàng)建矩陣:
arr = np.array([[5, 6], [7, 8]])
mat3 = np.matrix(arr) - 創(chuàng)建3*3的0矩陣: np.matrix(np.zeros((3, 3)))
- 創(chuàng)建3*3的1矩陣:np.matrix(np.ones([2, 4]))
- 創(chuàng)建3*3的矩陣,數(shù)值范圍為[0,1)的小數(shù):np.matrix(np.random.rand(3, 3))
- 創(chuàng)建3*5的矩陣,數(shù)值范圍為[1,8)的整數(shù):np.matrix(np.random.randint(1, 8, size=(3, 5)))
- 創(chuàng)建4*4的對角矩陣,對角線元素為1,其他元素為0,即單位矩陣:np.matrix(np.eye(4, 4, dtype=int))
- 創(chuàng)建3*3的對角矩陣,對角線元素為[1, 2, 3]:np.matrix(np.diag([1, 2, 3]))
2、矩陣運算1:
- 數(shù)組四則運算原理:廣播機制
上圖中,兩個數(shù)組可以進(jìn)行四則運算的前提要么是兩個數(shù)組形狀相同,要么就符合上面的廣播機制。 - 同理,矩陣的(加法、減法、除法)運算也可以應(yīng)用傳播機制
- 矩陣乘法運算要求:第1個矩陣的列數(shù)必須等于第2個矩陣的行數(shù)
- 兩個二維(通過”數(shù)組名.ndim“查看維數(shù),一般有幾個中括號就是幾維)數(shù)組的點乘運算等價于矩陣乘法運算:np.dot(m3, m4)
3、矩陣重塑:
- 矩陣轉(zhuǎn)置:mat.T
- reshape矩陣重塑
重塑前后的元素個數(shù)必須一致
重塑后不會修改原矩陣 - resize矩陣重塑
重塑前后的元素個數(shù)可以不一致:重塑后比原尺寸小,自動截斷。重塑后比原尺寸大,以0填充。
重塑后會修改原矩陣
4、數(shù)學(xué)運算函數(shù):
- 以下舉例假設(shè)新建了n1和n2和n3數(shù)組
- 通過函數(shù)進(jìn)行數(shù)學(xué)運算
- 符號運算和函數(shù)運算均采用廣播機制,以下介紹函數(shù)運算
- 判斷數(shù)組是幾維的:數(shù)組名.ndim
- 加法運算:np.add(n1, n2)
- 減法運算:np.subtract(n1, n2)
- 乘法運算:np.multiply(n1, n2)
- 除法運算:np.divide(n1, n2)
- 冪運算:np.power(n1, n2) # 以n1中元素為底數(shù),n2對應(yīng)位置元素為指數(shù)。
- 取整(相除后取整數(shù)部分):np.floor_divide(n1, n2)
- 取余/取模(相除后取余數(shù)部分):np.mod(n1, n2)
- 求相反數(shù):np.negative(n1)
- 求倒數(shù):np.reciprocal(n1.astype(float)) # 換成浮點型的原因是為了求出來有小數(shù)
- 四舍五入保留兩位小數(shù):np.around(n2, decimals=2)
- 四舍五入取整到小數(shù)點左側(cè)一位:np.around(n3, decimals=-1)
- 向上取整:np.ceil(n3)
- 向下取整:np.floor(n3)
- 元素累加、元素累乘
- 指數(shù)運算、對數(shù)運算
5、統(tǒng)計分析函數(shù):
- 對數(shù)組求和:數(shù)組名.sum()
- 每列的行元素求和:數(shù)組名.sum(axis=0)
- 每行的列元素求和:數(shù)組名.sum(axis=1)
- 對數(shù)組求平均值:數(shù)組名.mean()
- 按照行求平均值:數(shù)組名.mean(axis=0)
- 按照列求平均值:數(shù)組名.mean(axis=1)
- 求數(shù)組最大值:arr.max()
- 按照行求最大值:arr.max(axis=0)
- 按照列求最大值:arr.max(axis=1)
- 加權(quán)平均值:
按數(shù)量number占比來計算加權(quán)單價price
加權(quán)平均數(shù)的好處消除極端值的影響
np.average(price, weights=number) - 中位數(shù):np.median(數(shù)組名)
- 方差:np.var(數(shù)組名)
- 標(biāo)準(zhǔn)差:np.std(數(shù)組名)
6、數(shù)組排序
- 把每一列中所有行進(jìn)行排序:np.sort(n, axis=0)
- 把每一列中所有行進(jìn)行降序:
先升序再反轉(zhuǎn)
asc = np.sort(n, axis=0)
np.flip(asc, axis=0) - 把每一行中所有列進(jìn)行升序:np.sort(n, axis=1)
文章來源地址http://www.zghlxwxcb.cn/news/detail-726467.html
文章來源:http://www.zghlxwxcb.cn/news/detail-726467.html
到了這里,關(guān)于數(shù)據(jù)分析03——矩陣常用計算方法和函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!