1、初始化矩陣的時候,如果矩陣為複數,則需要
np.zeros((n,m,l),dtype=complex) 指明矩陣型別,否則賦值的時候會提示complexwarning: casting complex values to real discards the imaginary part
2、矩陣賦值的時候,numpy預設為行向量賦值,這是跟matlab很不一樣的一點
例如:x = np.zeros((n,m),dtype=complex)
a = np.ones((n,1))
這時如果寫x[:,1] = a,則會報錯valueerror: could not broadcast input array from shape (n,1) into shape (n)
相反,如果你對a轉置,變成行向量,再賦值則沒有問題
3、要習慣numpy矩陣索引是從0:n-1的
4、行向量、列向量的關係
a = np.array([1,2,3]) a.shape 輸出 (3,)
b = np.array([[1,2,3]]) b.shape 輸出 (1,3)
c = np.ones((1,3)) c.shape 輸出 (1,3)
d = np.array([[2],[5],[8]]) d.shape 輸出 (3,1)
a+c 輸出array([[2., 3., 4.]]) shape (1,3)
b+c 輸出array([[2., 3., 4.]]) shape (1,3)
d+c 輸出array([[3., 3., 3.], shape (3,3)
[6., 6., 6.],
[9., 9., 9.]])
a+d 輸出array([[ 3, 4, 5], shape (3,3)
=b+d [ 6, 7, 8],
[ 9, 10, 11]])
a+b 輸出array([[2, 4, 6]]) shape(1,3)
結論:1) a這種size為(3,)的向量其實可以當做行向量來處理,與行向量c相加為行向量,與列向量d相加為矩陣
2) 還有一種情況會出現向量的size是乙個數的,就是從矩陣裡取一列或一行,此時不管是取列還是行,size都是(m,),也就是說都是行向量的形式。此後再利用這個列或者行去做運算,如果結果為向量,那麼這個向量的size都是(m,)這種形式的。
例如:e.shape 是(3,3) 則e[:,2].shape 和 e[1,:].shape 都是(3,)
但是矛盾的是,此時,假設有g = e[1,:] shape為(3,) 如果把g當做行向量的話,把e和g做矩陣乘法,按照線性代數想法是不能運算的,但是卻可以運算
e.dot(g)
out[133]: array([ 86, 149, 212])
e.dot(g).shape
out[134]: (3,)
且shape 為(3,)
java DOM 注意事項
1.w3c把標籤內的文字部分也定義成乙個node 2.element物件代表的是xml文件中的標籤元素 繼承於node,亦是node的最主要的子物件 3.attr實際上是包含在element中的,它並不能被看作是element的子物件,因而在dom中attr並不是dom樹的一部分,所以node中的 ...
static注意事項
static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域性靜態變數 在...
CSS注意事項
一 寬度 高度 對齊方式請別忘記他們 只要你時刻記得 div css 不變形的秘密你已經掌握了 90 也有對齊方式哦!一定要掌握當 對齊方式不同是 布局出現的問題!左右左 能不變形嗎?預設 是要換行的哦 div css的 居中對齊 是有條件的哦 所有當同級元素的對齊方式都為居中對齊的時候可以採用居中...