2014-12-01 2 views
0

У меня есть список списков, lists, который я хотел бы преобразовать в Numpy матрицы (которые я обычно делают по matrixA = np.matrix(lists). Len каждого списка в lists составляет 7000, а len(lists) 10000.Преобразование Список Numpy Массивы в Numpy Матрица

Так что, когда я выполняю matrixA = np.matrix(lists), я бы ожидать, что np.shape(matrixA) вернуть (10000, 7000). Однако вместо этого он возвращает (10000, 1), где каждый элемент является ndarray.

Это никогда не случалось со мной раньше, но я абсолютно необходимо, чтобы это было в форме (10000, 7000). У кого-нибудь есть предложение о том, как получить это в правильном формате?

+0

Вы можете воспроизвести это с небольшим примером? – Akavall

+2

И ваши подсписки одинаковой длины? – Akavall

ответ

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) 
Смежные вопросы