例:有行向量矩陣matrix,維度為(n行,d特徵長)。我們要求個點之間的距離並構成乙個(n,n)距離矩陣,方法如下:
主要用到:
np.square(),
np.add(a,b), #若b為行向量,將b加到前面的每一行上;若b為列向量,將b加到前面的每一列上
np.sum(a,1) #1:按列加,0:按行加
我們有(a - b)^2 = a^2 + b^2 - 2*a*b;
import numpy as np
def calculate_dis(x):
sum_x = np.sum(np.square(x),1)#先求對應元素的平方,然後按列相加,得到(n,1)列向量
dist = np.add(np.add(-2*np.dot(x,x.t),sum_x),sum_x.t)#np.dot()函式是向量的點乘,np.add()函式是將sum_x的轉置行向量依次加到前面的(n,n)向量的每一行上。按行加
或dist = np.add(np.add(-2*np.dot(x,x.t),sum_x).t,sum_x)#np.dot()函式是向量的點乘,np.add()函式是將sum_x列向量依次加到前面的(n,n)向量的每一列上。按列加
return dist
舉個例子:
求乙個矩陣的逆矩陣 用伴隨矩陣求
題目 noyj774 用代數余子式求逆矩陣方法 若現有矩陣a,要求其逆矩陣 若 a 0,則其不存在逆矩陣 若 a 0,其逆矩陣a 1 a a 其中 a為其伴隨矩陣 伴隨矩陣的求法 a j i m i j 其中m i j 為a i j 的代數余子式 即 a1 i j m i j 再將 a1轉置得到 a...
求乙個矩陣中子矩陣的和的最大值
題目 求乙個指定矩陣中的子矩陣的和的最大值 負責人 趙順傑 馬帥強 在王老師布置該課題的課上時間,趙順傑和我在紙上討論了方法,在課下把這個方法補充完整 我們先定義了乙個3 3的矩陣,首先是子矩陣中元素數為1的矩陣的和,也就是元素自己,然後是元素數分別為2,3,4,6,9的子矩陣。定義乙個變數max,...
python創造乙個稀疏矩陣
答 能高效地表示只有零星非零值的資料 import numpy as np from scipy import sparse 建立乙個矩陣 matrix np.array 0,0 0,1 3,0 建立乙個壓縮的稀疏行矩陣 只保留非零的值 matrix sparse sparse.csr matrix...