2015-01-24 3 views
2

Что такое самый простой способ построить матрицу нулей с мощностью 1000 (строка) x 10 (столбец) в Python без использования numpy? (только стандартная библиотека)стандартная библиотека python для построения матрицы

Кроме того, скажем, если я получу список значений с 10 элементами. скажем a=[1 2 3 ... 10], и я бы хотел перезаписать 1-й ряд матрицы нулей этим списком a. Как я буду заниматься этим.

Большое спасибо.

PS: Причина, по которой я хотел бы использовать обычный список python, а не numpy для построения матрицы, объясняется требованием этого назначения, которое не позволяет использовать внешние библиотеки, отличные от стандартной библиотеки python.

+2

Возможно, вы уже знаете об этом, но для будущих читателей о том, кто не может: у вас должна быть * очень хорошая причина для использования чистых списков python над массивами numpy', если вы выполняете множество операций с матрицами , потому что встроенные списки очень медленные, пространственно-неэффективные и громоздкие в сравнении. – jme

+0

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

+0

@jme Иногда курс или какое-либо другое требование может не диктовать использование сторонних библиотек. Например (и причина, по которой я здесь), заключается в том, что курс AI на edX говорит, что вы не можете использовать сторонние библиотеки (т. Е. Numpy) для реализации раздвижного решения головоломки. Вы можете себе представить, как трудно это без numpy! –

ответ

5

Вы можете сделать:

m = [[0 for _ in range(10)] for _ in range(1000)] 
m[0] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

Обратите внимание, что если вы используете:

>>> matrix = 3*[3*[0]] 
>>> matrix 
[[0, 0, 0], [0, 0, 0], [0, 0, 0]] 

после замены одного элемента:

>>> matrix[0][0] = 1 
>>> matrix 
[[1, 0, 0], [1, 0, 0], [1, 0, 0]] 

весь столбец изменится. Поэтому вы должны использовать этот метод только в том случае, если вам не нужны ваши элементы, чтобы иметь возможность изменять самостоятельно.

+0

Спасибо @elyase. Это очень подробное объяснение :) –

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