CSV-файл и матрица. Python
У меня есть файл в формате csv там находится матрица(вручную)
1 2 3 4 5 6 7 8
8 7 6 5 4 3 2 1
2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2
1 3 5 7 9 7 5 3
3 1 5 3 2 6 5 7
1 7 5 9 7 3 1 5
2 6 3 5 1 7 3 2
Мне нужно что бы матрица прочитывалась из csv-файла и все значения матрицы менялись на ноль и уже преобразованная матрица записывалась в новый csv файл, я могу вывести содержимого файла и отдельно цифры матрицы заменить на ноль, но это получается 2 разных кода, как их объединить, так же я не могу понять как уже преобразованную матрицу записать в новый csv-файл. Помогите разобраться. Вот мои коды
import csv
with open('tekst.csv', newline='') as f:
reader = csv.reader(f)
for row in reader:
print(row)
import numpy as p
matA = p.matrix([[1,2,3,4,5,6,7,8], [8,7,6,5,4,3,2,1], [2,3,4,5,6,7,8,9], [9,8,7,6,5,4,3,2], [1,3,5,7,9,7,5,3], [3,1,5,3,2,6,5,7],[1,7,5,9,7,3,1,5],[2,6,3,5,1,7,3,2]])
print("Матрица с нулями:\n", matA * 0)
Ответы (1 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
Это буквальный ответ на вопрос. Хотя вопрос странный: зачем читать матрицу если нужны только её размеры? Но что спрошено, то спрошено:
# читаем матрицу (элементы целые)
m = [[int(token) for token in line.split()] for line in open('tekst.csv')]
# делаем копию того же размера из нулей
mz = [[0] * len(row) for row in m]
# записываем нули в другой файл
with open('resultat.csv', 'w') as f:
for row in mz:
print(' '.join(map(repr, row)), file=f)