numpy矩陣相加時需注意的乙個點

2021-10-08 08:23:12 字數 639 閱讀 9079

今天在進行numpy矩陣相加的時候出現了乙個小的奇怪的地方,下面我們來看看:

>>>p = np.array([1,2,3,4])

>>>f = np.array([9,8,7,6]).reshape((4,1))

>>>p + f

array([[10, 11, 12, 13],

[ 9, 10, 11, 12],

[ 8, 9, 10, 11],

[ 7, 8, 9, 10]])

咦,怎麼會這樣,p和f明明都是一維的向量,怎麼相加之後成了4×4的矩陣。其實,這和大名鼎鼎的矩陣計算的廣播機制有關。再看下面

>>>p = p.reshape((4,1))

>>>p + f

array([[10],

[10],

[10],

[10]])

這個時候就符合我們的預期了。

造成上述兩次加法結果不同的原因在於,第一次相加的時候p的形狀沒有被明確指定,結果相加的時候numpy的廣播機制起了作用。乙個矩陣加上乙個常數,等於矩陣的每乙個值都加上這個常數。這就是最常見的廣播機制了。上述的第一種情況就是使得矩陣f的每一行分別加上p中不同的值,得到每一行的結果1×4的向量,最終結果也就是4×4了。

oracle sql查詢時需注意的細節

1 oracle 對date型資料做判斷時,null值的判斷 oracle 對date型資料做判斷時,null值的判斷,需注意 select tp.display,tp.status,tp.isrobticket,tp.robtickettime,tp.productid from t produc...

面試時需注意的一些細節

我覺得我們面試的題目已經基本的不能再基本了,但是還是找不到乙個合適的人。現在真的成了一種普遍的困境,很多人找不到滿意的工作,很多公司找不到滿意的人。閒話不多說了,說說我們的幾個題目吧。同時也說說對即將參加面試的兄弟的建議,從乙個面試者的角度。第乙個題目 自我介紹。自我介紹,幾乎是每個面試的必備的題目...

UPDATE語句關聯時需注意的事

oracle庫中,關聯其他表進行更新時,使用如下語句會出現乙個問題。update student a set a.name select b.name from student copy b where b.id a.id 執行完會發現,a表中未與b表對應上的記錄,name字段值均變為null了。我...