Итак, исходя из содержания вашего текущего вопроса, мы не можем сказать, какова ваша общая конечная цель.Я собираюсь работать в предположении, что вы хотите, чтобы матрица n x n
была представлена в Python, и там были какие-то числа.Я собираюсь заполнить эту матрицу числом 13
, и вы можете изменить его, как вам нужно.
Матрица - это, в основном, строки и столбцы, что-то вроде этого
13 13 13
13 13 13
13 13 13
Это матрица 3x3
с 3 строками и 3 столбцами.
Я могу представить матрицу с коллекцией коллекций (список списков, кортеж кортежей, список кортежей и т. Д.), Где каждая внутренняя коллекция представляет строку.
Я не собираюсь использовать матрицу нужного вам размера, потому что вам нужно это понять, я пойду с 5x5
.
Вот как будет выглядеть матрица 5x5
в терминах списка Python
[[13, 13, 13, 13, 13], [13, 13, 13, 13, 13], [13, 13, 13, 13, 13], [13, 13, 13, 13, 13], [13, 13, 13, 13, 13]]
Чтобы сделать это, я мог бы сделать что-то более короткое
[[13 for column in range(5)] for row in range(5)]
Теперь вам нужна матрица, коллекция коллекций может быть немного ненужной и медленной, давайте попробуем использовать эту библиотеку в Python под названием numpy
.Вам нужно будет установить его либо из исходного кода, через код Python, либо из pip, либо из какого-либо другого инструмента, посмотрите его.
Допустим, у меня есть моя старая коллекция списков, теперь я не хочу использовать это, потому что смотреть на это не нужно и немного запутанно.Я должен написать в своем собственном коде, чтобы правильно распечатать его в виде матрицы, выполнить матричные операции над ним и т. Д. Почему бы не использовать что-то, что оборачивает это для меня, например numpy matrix ?
import numpy as np
matrix_of_13s = np.matrix([[13 for column in range(5)] for row in range(5)]])
Допустим, мне нужен доступ к элементу в строке 3 и столбце 4. В моей коллекции коллекций это означает, что мне нужно получить третью строку, а затем четвертый элемент внутри нее.Это переводится как
collection_of_13s[3][4]
Если я хочу пройти через все элементы, я буду использовать ответ @thekingofkings, за исключением, конечно, в этом случае с 5 строками и 5 столбцами.
for row in range(5):
for column in range(5):
print(collection_of_13s[row][column])
Теперь, хотя это работает, это не то, что я хочу.Что я действительно хочу, так это сетка из 13 с моими размерами.Поэтому, почему бы не использовать такую пустую матрицу, как это?
matrix_of_13s = np.matrix(collection_of_13s)
for element in np.nditer(matrix_of_13s):
print(element)
, которая будет проходить через каждый элемент матрицы слева направо в порядке строк.
Вы также заметите, что с ростом масштабов вашего проекта Numpy становится более эффективным и простым в использовании, по причине .
Я также хочу упомянуть еще одну опцию, которая является сверхпростой концепцией, и вам не нужна ни одна коллекция коллекций или NumPy.Просто используйте одномерный массив для представления вашей сетки.Эта концепция фактически используется в принципе компонентного анализа изображений, но это не имеет отношения.
По сути, сетка из 13 с становится просто обычным списком
[13, 13, 13, 13, 13, 13, 13, 13, 13]
Новый индекс любого элемента будет (column +1)*(row)
.Есть математическое доказательство и объяснение этого, но я не хочу сейчас его искать, лол.