簡體   English   中英

將1D數組轉換為numpy矩陣

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM