2017-02-21 14 views
2

Я смущен о выполнении векторизации с использованием numpy.Python массив с использованием numpy

В частности, у меня есть матрица этой формы: типа <type 'list'>

[[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]

Как сделать его выглядеть следующим образом, используя NumPy?

[[ 0.0 0.0 0.0  0.0 ] 
[ 0.02 0.04 0.0325 0.04 ] 
[ 1  2  3  4 ]] 

Да, я знаю, что может сделать это с помощью:

np.array([[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]) 

Но у меня есть очень длинная матрица, и я не могу просто впечатать каждый строк, как это. Как я могу обработать случай, когда у меня очень длинная матрица?

+0

np.array ([[0,0, 0,0, 0,0, 0,0], [0,02, 0,04, 0,0325, 0,04], [1, 2, 3, 4]]) – Erotemic

+0

Привет Erotemic, вы можете увидеть, пожалуйста, мое обновление? – wrek

+0

как получить матрицу, которую вы не хотите вводить? В какой форме он существует сейчас (например, у меня есть массив массивов, CSV-файл, функция генератора)? – Marat

ответ

1

Предполагая, что вы начинаете с большим массивом, то почему бы не разделить его на массивы нужного размера (n):

splitted = [l[i:i + n] for i in range(0, len(array), n)] 

и сделать матрицу из что:

np.array(splitted) 
+0

Вы можете просто использовать 'np.array (A) .reshape', чтобы получить эту форму намного быстрее. – languitar

1

Если вы «У вас есть список списков, хранящихся в объекте Python A, все, что вам нужно сделать, это позвонить np.array(A), который вернет массив numpy, используя элементы A. В противном случае вам нужно указать, в какой форме ваши данные сейчас, чтобы выяснить, как вы хотите загружать свои данные.

2

Это не матрица списка типов, это список, содержащий списки. Вы можете думать об этом как матрица, но Python это просто список

alist = [[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]] 

arr = np.array(alist) 

работает так же, как

arr = np.array([[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]) 

Это создает 2d массив, с формой (3,4) и DTYPE поплавок

In [212]: arr = np.array([[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]) 

In [213]: arr 
Out[213]: 
array([[ 0. , 0. , 0. , 0. ], 
     [ 0.02 , 0.04 , 0.0325, 0.04 ], 
     [ 1. , 2. , 3. , 4. ]]) 
In [214]: print(arr) 
[[ 0.  0.  0.  0. ] 
[ 0.02 0.04 0.0325 0.04 ] 
[ 1.  2.  3.  4. ]] 
Смежные вопросы