2014-12-01 207 views
0

我有一個列表列表lists,我想將它轉換爲numpy矩陣(我通常會做matrixA = np.matrix(lists)lists中的每個列表的len是7000,而len(lists)爲10000將Numpy數組列表轉換爲Numpy矩陣

所以,當我執行matrixA = np.matrix(lists),我預計np.shape(matrixA)回到(10000, 7000)。然而,而是返回(10000, 1),每個元素都是一個ndarray。

這是從來沒有過我,但我絕對需要這樣做的形式是(10000, 7000)。Mig任何人都有關於如何以適當的格式獲得此建議?

+0

你能有一個小例子重現呢? – Akavall 2014-12-01 23:00:52

+2

並且是你長度相同的子列表嗎? – Akavall 2014-12-01 23:02:18

回答

1

我試圖重新,但我不能:

>>> import numpy as np 
>>> arrs = np.random.randn(10000, 7000) 
>>> arrs 
array([[ 1.07575627, 0.16139542, 1.92732122, ..., -0.26905029, 
     0.73061849, -0.61021016], 
     [-0.61298112, 0.58251565, -1.0204561 , ..., 1.73095028, 
     0.25763494, 0.03769834], 
     [ 1.08827523, 1.67841947, -0.08118218, ..., -0.4315941 , 
     1.41509082, 0.59479981], 
     ..., 
     [ 0.7457839 , 0.20886401, 1.07463208, ..., 0.79508743, 
     0.15184803, -0.34028477], 
     [-0.25272939, 0.17744917, -1.45035157, ..., -0.54263528, 
     0.04489259, -0.41222399], 
     [ 1.58635482, 2.2273889 , 1.1803809 , ..., 0.8501827 , 
     -0.43804703, 0.78975036]]) 
>>> lists = [list(arr) for arr in arrs] 
>>> len(lists) 
10000 
>>> all(len(lis) == 7000 for lis in lists) 
True 
>>> mat = np.matrix(lists) 

mat現在是:

>>> mat 
matrix([[ 1.07575627, 0.16139542, 1.92732122, ..., -0.26905029, 
      0.73061849, -0.61021016], 
     [-0.61298112, 0.58251565, -1.0204561 , ..., 1.73095028, 
      0.25763494, 0.03769834], 
     [ 1.08827523, 1.67841947, -0.08118218, ..., -0.4315941 , 
      1.41509082, 0.59479981], 
     ..., 
     [ 0.7457839 , 0.20886401, 1.07463208, ..., 0.79508743, 
      0.15184803, -0.34028477], 
     [-0.25272939, 0.17744917, -1.45035157, ..., -0.54263528, 
      0.04489259, -0.41222399], 
     [ 1.58635482, 2.2273889 , 1.1803809 , ..., 0.8501827 , 
     -0.43804703, 0.78975036]]) 
>>> mat.shape 
(10000, 7000)