[英]Convert 1D array into numpy matrix
我有一個簡單的一維Python數組,隨機數。 我想要做的是將其轉換為特定形狀的numpy Matrix。 我目前的嘗試看起來像這樣:
randomWeights = []
for i in range(80):
randomWeights.append(random.uniform(-1, 1))
W = np.mat(randomWeights)
W.reshape(8,10)
不幸的是,它總是創建一個形式的矩陣:
[[random1,random2,random3,...]]
因此,只使用一個維度的第一個元素,並且reshape命令無效。 有沒有辦法將1D數組轉換為矩陣,以便前x個項目將是矩陣的第1行,接下來的x個項目將是第2行,依此類推?
基本上這將是預期的形狀:
[[1, 2, 3, 4, 5, 6, 7, 8],
[9, 10, 11, ... , 16],
[..., 800]]
我想我總是可以通過解析輸入數組手動構建一個所需形式的新矩陣。 但我想知道是否有一個更簡單,更優雅的解決方案,內置函數我沒有看到。 如果我必須手動構建這些矩陣,我將在代碼的其他區域進行大量的額外工作,因為我的所有源數據都來自簡單的1D數組,但將作為矩陣計算。
reshape()
不會重新定位,您需要分配結果:
>>> W = W.reshape(8,10)
>>> W.shape
(8,10)
你可以使用W.resize()
, ndarray.resize()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.