2015-03-31 2 views
1

У меня есть матрица в следующей форме:Что называется этот объект?

a=[[1 2 3 4] 
[2 5 7 6] 
[5 4 2 1]] 

(к примеру). Во-первых, каковы каждый из названных элементов? то есть. какой тип объекта [1 3 4] (список без запятых). Во-вторых, как бы я идти о превращении каждого из этих «вещей» в список, так что матрица гласит:

b=[[1, 2, 3, 4] 
[2, 5, 7, 6] 
[5, 4, 2, 1]] 

?

Я начал с списка списков, а затем использовал вставку, чтобы заменить каждый список матрицей этого списка, и превратил ее в. Тем не менее, мне было необходимо сделать это, поскольку мне нужно было вести списки в порядке и умножать на матрицу. Благодарим вас за любую помощь!

+0

Вы используете Numpy? – thefourtheye

+2

Список без запятых синтаксически неверен в Python. Что означает 'type (a)' say на первой «матрице»? – RickardSjogren

+0

тип (a) говорит numpy.matrixlib.defmatrix.matrix - абсолютно не знаю, что это значит! – eibb95

ответ

0

Объект является numpy.matrix и преобразуется в список просто:

as_list = a.tolist() 
+0

Это, очевидно, часть гораздо более длинного кода, но похоже, что я мог бы использовать это, чтобы помочь. Я попытался перечислить раньше, но я думаю, что я пытался это сделать неправильно. Сообщите, если это решит проблему! Благодаря! – eibb95

+0

Я должен был использовать и делать это для каждого элемента a, так как он не работает на всей матрице.В любом случае, для каждого элемента (получившего этот бит), но THEN заменяет текущие элементы новой формой списка, поэтому все элементы все еще находятся в одном и том же порядке в матрице? Поэтому я использовал элемент в: list_form = element.tolist() для первого бита – eibb95

0

Вы не можете определить список, не используя запятые. Ваш первый фрагмент не может быть выполнен.

Тем не менее, это выглядит как вывод str(numpy.array(a)), который не отображает запятую.

>>> str(np.array(a)) 
[[1 2 3] 
[4 5 6] 
[7 8 9]] 
+0

Я немного изменил свой вопрос, чтобы объяснить, как я оказался с! – eibb95

0

После проникновения в суть от предыдущих ответов, это демо-ролик может ответить на ваш вопрос

>>>import numpy as np 
>>> a = np.array([[1, 2, 3, 4], [2, 5, 7, 6], [5, 4, 2, 1]]) 
>>> a 
array([[1, 2, 3, 4], 
    [2, 5, 7, 6], 
    [5, 4, 2, 1]]) 
>>> print(a) 
[[1 2 3 4] 
[2 5 7 6] 
[5 4 2 1]] 

>>> b = list(a) 
>>> print(b) 
[array([1, 2, 3, 4]), array([2, 5, 7, 6]), array([5, 4, 2, 1])] 

>>> b = [list(e) for e in a] 
>>> b 
[[1, 2, 3, 4], [2, 5, 7, 6], [5, 4, 2, 1]] 

Таким образом, "[1 3 4] называется NumPy массив.

- доработанный для матрицы -

>>> a = np.matrix([[1, 2, 3, 4], [2, 5, 7, 6], [5, 4, 2, 1]]) 
>>> a 
matrix([[1, 2, 3, 4], 
    [2, 5, 7, 6], 
    [5, 4, 2, 1]]) 
>>> 
>>> print(a) 
[[1 2 3 4] 
[2 5 7 6] 
[5 4 2 1]] 
>>> a.tolist() 
[[1, 2, 3, 4], [2, 5, 7, 6], [5, 4, 2, 1]] 
+0

В комментариях было указано, что это «numpy.matrix», для которого это решение не работает. – RickardSjogren

+0

Объектные матричные объекты @RickardSjogren представляют собой подкласс ndarray, поэтому они наследуют все атрибуты и методы ndarrays, а np.array - это просто удобная функция для создания ndarray. – SYK

+0

Существуют некоторые отличия: '[list (e) для e в a]' дает '[[matrix ([[1, 2, 3, 4]])], [matrix ([[2, 5, 7, 6] ]])], [матрица ([[5, 4, 2, 1]])]] 'на матрице, которая не была запрошена. – RickardSjogren

Смежные вопросы