python - 在 Numpy 里如何高效地定制矩陣?
問題描述
比如我想要這樣的矩陣:
In [10]: np.array([[(123, 3, 21)] * 3] * 2)Out[10]: array([[[123, 3, 21],[123, 3, 21],[123, 3, 21]], [[123, 3, 21],[123, 3, 21],[123, 3, 21]]])
Numpy 里有什么辦法能代替如此粗魯?shù)摹噶斜沓朔ā梗匡@然 numpy.full 不行,因為它只能用一個 scalar 填充矩陣,不能用 [123, 3, 21] 填充。
此外我還想給某矩陣「加若干維」:
In [11]: a = np.arange(10)In [13]: b = np.asarray([a])In [14]: bOut[14]: array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
比如我想給現(xiàn)成的 a 加一維,只能如此手動包裝 np.asarray([a]), 不知 Numpy 有什么 numpy.squeeze 的「反函數(shù)」可以拿來用。
問題解答
回答1:第一個問題,參考樓上的就好,第二個擴展緯度,numpy有專門的函數(shù): expand_dims
In [1] import numpy as np In [2] a = np.arange(10) In [3] b = np.expand_dims(a, axis=0) # axis表示在那一維(軸)插入新的維度 In [4] b Out[4] array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])回答2:
np.tile((123, 3, 21), (2, 3, 1))
?In?[1]?? import numpy as np?In?[2]?? a = np.arange(10)?In?[3]?? b = a.reshape((1, 10))?In?[4]?? b?Out[4]?? array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
相關(guān)文章:
1. php - MySQL數(shù)據(jù)庫設(shè)計,獲取點贊的人數(shù)2. python - 怎么把char*對象轉(zhuǎn)換成PyObject*對象3. javascript - h5微信中怎么禁止橫屏4. mysql - 這種分級一對多,且分級不平衡的模型該怎么設(shè)計表?5. css - 如何選擇字體?6. javascript - 有適合開發(fā)手機端Html5網(wǎng)頁小游戲的前端框架嗎?7. MYSQL 根據(jù)兩個字段值查詢 但兩個值的位置可能是互換的,這個怎么查?8. mysql - linux連接數(shù)據(jù)庫報錯9. java - 線上應(yīng)用,如果數(shù)據(jù)庫操作失敗的話應(yīng)該如何處理?10. MySQL中的enum類型有什么優(yōu)點?
