Разбить массив на строки и столбцы - PullRequest
3 голосов
/ 02 июля 2019

Использование Python 2.

Мне нужно разбить массив на их строки и столбцы, но мне кажется, что я не могу найти решение, как это было задано в упражнении

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

Пока чтоУ меня есть эти функции

def _rows(a):
    print("array:"+ str(a[:,]))
_rows(a)
def _col(a):
    alt=a.T
    print ("array:"+ str(alt[:,]))
_col(a)

, но мне нужно вернуть список, и когда я использую функцию list(), он разделяет каждый отдельный символ

Мне нужно, чтобы результат был:

[array([5, 0, 3, 3]), array([7, 9, 3, 5]), array([2, 4, 7, 6]), array([8, 8, 1, 6])]

[array([5, 7, 2, 8]), array([0, 9, 4, 8]), array([3, 3, 7, 1]), array([3, 5, 6, 6])]

Ответы [ 2 ]

8 голосов
/ 02 июля 2019

Вы можете распаковать строки и столбцы в список с помощью:

res1, res2 = [*a], [*a.T]

print(res1)

[array([5, 0, 3, 3]),
 array([7, 9, 3, 5]),
 array([2, 4, 7, 6]),
 array([8, 8, 1, 6])]

print(res2)

[array([5, 7, 2, 8]),
 array([0, 9, 4, 8]),
 array([3, 3, 7, 1]),
 array([3, 5, 6, 6])]

Расширенная итеративная распаковка была введена в Python 3.0, для более старыхверсии вы можете вызвать конструктор списка как в ответе @ U9-Forward

2 голосов
/ 02 июля 2019

Как вы, кажется, на Python 2:

>>> l1, l2 = list(a), list(a.T)
>>> l1
[array([5, 0, 3, 3]), array([7, 9, 3, 5]), array([2, 4, 7, 6]), array([8, 8, 1, 6])]
>>> l2
[array([5, 7, 2, 8]), array([0, 9, 4, 8]), array([3, 3, 7, 1]), array([3, 5, 6, 6])]
>>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...