Одним из самых простых способов является использование numpy и функции изменения формы
import numpy as np
k = np.array(data)
k.reshape([row,column],order='F')
Что касается вашего примера. Вы упомянули, что данные взяты из текстового файла, чтобы получить данные из текстового файла и изменить форму
import numpy as np
data = np.genfromtxt("sample-data.txt");
data.reshape([4,7],order='F')
вывод будет
Out[27]:
array([[ 5, 0, 18, 2, 5, 1, 158],
[ 3, 1, 23, 10, 6, 1, 132],
[ 5, 0, 11, 1, 1, 1, 150],
[ 0, 0, 1, 0, 0, 0, 17]])
Я не знаю структуру данных, но предполагаю, что они в 1 гигантском столбце, как видно из образца выше. При импорте данных используется open
. Происходит следующее.
data = open("sample-data.txt",'r').readlines()
data
Out[64]:
['5\n',
'3\n',
'5\n',
'0\n',
'0\n',
'1\n',
'0\n',
'0\n',
'18\n',
'23\n',
'11\n',
'1\n',
'2\n',
'10\n',
'1\n',
'0\n',
'5\n',
'6\n',
'1\n',
'0\n',
'1\n',
'1\n',
'1\n',
'0\n',
'158\n',
'132\n',
'150\n',
'17']
В результате получается массив строковых значений, поскольку \n
означает следующую строку. Предполагая, что это числовые данные, вы можете использовать приведенный выше код для получения чисел.