2017-02-13 7 views
0

Итак, я потратил некоторое время на осмотр, но не нашел ответа, который я искал. У меня есть два файла данных, data1 и data2, которые я импортировал из txt.Как добавить матрицу разного размера в другую на Python?

Каждый из них представляет собой матрицу, данные 1 имеют строки N1 и 2 столбца, а data2 имеет строки N2 и 2 столбца. Заметим, что N1 не равно N2. Я хотел бы сделать третью матрицу data3, причем первые два столбца являются двумя из data1, а два других столбца - данными из data2. Кроме того, они должны иметь одинаковую длину (т. Е. Мы должны заставить N1 = N2 устранить более высокие записи на матрице, которая больше).

Подводя итог: в этом случае мы должны получить матрицу N на 4, где N - min (N1, N2).

Любой может помочь? :)

+0

Похоже, вы получили довольно хороший ответ вам r вопрос. Может быть, вы должны это принять? –

ответ

0

Если матрицы списки списков, то это будет объединить их, как вы описываете:

[data1[i] + data2[i] for i in range(min(len(data1), len(data2)))] 

Если вы хотите, чтобы объединить их прямо из файлов, которые вы можете сделать это:

data1 = [line.strip() for line in open('data1.txt').readlines()] 
data2 = [line.strip() for line in open('data2.txt').readlines()] 
for first, second in zip(data1, data2): 
    print('{0} {1}'.format(first, second)) 

Если вы не хотите читать оба файла в память вы можете сделать это:

data1 = open('data1.txt') 
data2 = open('data2.txt') 
while True: 
    first = data1.readline().strip() 
    second = data2.readline().strip() 
    if not first or not second: 
     break 
    print('{0} {1}'.format(first, second))