7 простых способов чтения 2D-массива из файла на Python

Чтение двумерного массива из файла — распространенная задача в программировании на Python. Независимо от того, работаете ли вы с файлами CSV, текстовыми файлами или файлами других форматов, важно знать различные методы эффективного чтения данных в 2D-массив. В этой статье мы рассмотрим семь простых для понимания методов выполнения этой задачи, дополненных разговорными объяснениями и примерами кода.

Метод 1: использование вложенных циклов
Самый простой способ чтения двумерного массива из файла — использование вложенных циклов. Этот метод прост и не требует каких-либо внешних библиотек. Вот пример:

data = []
with open('file.txt', 'r') as file:
    for line in file:
        row = line.split()
        data.append(row)

Метод 2: использование NumPy
Если вы работаете с числовыми данными, библиотека NumPy предоставляет эффективные методы чтения массивов и управления ими. Используйте функцию numpy.loadtxt()для чтения двумерного массива из файла:

import numpy as np
data = np.loadtxt('file.txt')

Метод 3: использование pandas
Для обработки табличных данных библиотека pandas является мощным инструментом. Вы можете использовать функцию pandas.read_csv()для чтения CSV-файла в DataFrame pandas, который можно легко преобразовать в 2D-массив:

import pandas as pd
df = pd.read_csv('file.csv')
data = df.values

Метод 4: использование csv.reader
Встроенный модуль csvобеспечивает простой способ чтения файлов CSV. Вы можете использовать объект csv.readerдля перебора строк файла и преобразования их в двумерный массив:

import csv
data = []
with open('file.csv', 'r') as file:
    csv_reader = csv.reader(file)
    for row in csv_reader:
        data.append(row)

Метод 5: использование numpy.genfromtxt
Другой метод, использующий NumPy, — это функция numpy.genfromtxt(), которая позволяет считывать данные из текстового файла с настраиваемой обработкой пропущенных значений:

import numpy as np
data = np.genfromtxt('file.txt', delimiter=',')

Метод 6: использование pandas.read_excel
Если вы работаете с файлами Excel, pandas также предоставляет удобный метод чтения данных из них. Используйте функцию pandas.read_excel(), чтобы прочитать файл Excel в DataFrame pandas:

import pandas as pd
df = pd.read_excel('file.xlsx')
data = df.values

Метод 7: использование JSON и ast.literal_eval
Если ваш 2D-массив хранится в файле JSON, вы можете использовать модуль jsonвместе с ast.literal_evalдля прочитайте и оцените содержание:

import json
import ast
with open('file.json', 'r') as file:
    data = ast.literal_eval(json.load(file))

Чтение 2D-массива из файла в Python можно выполнить различными способами, в зависимости от формата файла и используемых вами библиотек. В этой статье мы рассмотрели семь различных методов: от простых вложенных циклов до использования популярных библиотек, таких как NumPy и pandas. Зная эти методы, вы сможете гибко обрабатывать файлы различных форматов и эффективно считывать данные в двумерный массив для дальнейшей обработки в программах Python.