@Studentka1996

Как преобразовать двумерный квадратный массив в одномерный?

Как преобразовать двумерный квадратный массив в одномерный выполнив обход полосами (строками) без разворота (параметры для обхода – ширина и глубина вводятся при запуске программы).

Плохо понимаю данный метод (обход строками)... Если есть какие-то идеи, буду рада). Прошу помощи.
  • Вопрос задан
  • 107 просмотров
Решения вопроса 3
@Voprosium
Вот так можно.
>>> import numpy as np
>>> a = np.array([[1,2,3], [4,5,6], [7,8,9]])
>>> a.reshape(1, a.shape[0]*a.shape[1])
array([[1, 2, 3, 4, 5, 6, 7, 8, 9]])
Ответ написан
@dmshar
Во-первых, если Numpy, то вот так (пример прямо из документации):
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12],[13,14,15,16]])
b=a.flatten()
print (b)

Результат:
[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]
При этом не важно, ни сколько у вас элементов в матрице, ни какой она формы даже.

Во-вторых, если вам надо "обход полосами (строками) без разворота" и именно над списками, без NumPy- ну из чисто образовательных целей разумеется, то непонятно, зачем вам вводить ширину и глубину. Во первых, они одинаковы для квадратной матрицы, во вторых, они при заданном массиве легко определяются.
Ну и алгоритм такого "построчного обхода" будет выглядеть примерно так:
a = [[1,2,3,4], [5,6,7,8], [9,10,11,12],[13,14,15,16]]
l1=len(a)
b=[]
for i in range(l1):
    b+=list(a[i])
print (b)


Результат:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы