Чтобы прочитать файл CSV с заголовком через NumPy в Python, мы можем использовать genfromtxt() с параметром name=True, или функцию loadtxt(), которая подходит для числовых данных, или функцию read() из функции csv().

Существует три разных метода чтения CSV-файла с заголовком в Python NumPy. Давайте посмотрим на них один за другим подробно.

Содержание

Метод 1: используя genfromtxt

numpy.genfromtxt — это мощная функция, предоставляемая NumPy в Python, предназначенная для обработки загрузки данных из текстовых файлов с особым упором на файлы CSV.

Синтаксис:

data = np.genfromtxt(filename, delimiter=',', names=True)

Здесь,

Имя Описание
filename Имя входного CSV-файла, который мы хотим прочитать.
delimiter Параметр delimiter=’,’ указывает, что файл разделен запятыми.
names Параметр name=True сообщает NumPy использовать строку заголовка для определения имен столбцов, что позволит нам ссылаться на столбцы по имени их заголовка в Python.

Пример. Давайте посмотрим код Python, который поможет нам через NumPy прочитать CSV с заголовком в Python, используя функцию genfromtxt.

import numpy as np

filename = 'C:/Users/kumar/OneDrive/Desktop/CSVFile.csv'
employee_data = np.genfromtxt(filename, delimiter=',', names=True, dtype=None, encoding='utf-8')

print(employee_data)

Вывод:

  • delimiter=’,’: указывает, что файл представляет собой CSV.
  • names=True: это указывает genfromtxt рассматривать первую строку как заголовки столбцов.
  • dtype=None: NumPy определит тип данных каждого столбца.
  • encoding= ‘utf-8’: указывает кодировку файла, которая важна для чтения текстовых данных.
[('John Doe', 28, 'Marketing', 50000)
('Jane smith', 32, 'Engineering', 65000)
('Emily Davis', 45, 'Sales', 52000)]

NumPy чтение CSV с заголовком в Python

numpy загрузить CSV в Python

Таким образом, NumPy читает CSV с заголовком в Python, используя функцию genfromtxt() с параметром name=True.

Чтобы прочитать определенный заголовок из CSV-файла в Python как массив NumPy, мы можем применить этот код:

import numpy as np

filename = 'C:/Users/kumar/OneDrive/Desktop/CSVFile.csv'
employee_data = np.genfromtxt(filename, delimiter=',', names=True, dtype=None, encoding='utf-8')
Names = employee_data['Name']

print('Names of the Employees:', Names)

Вывод: давайте сделаем имена доступными только для чтения, ссылаясь только на имя заголовка («Имя»), и получим массив имен NumPy в Python.

Names of the Employees: ['John Doe' 'Jane smith' 'Emily Davis']

как импортировать CSV-файл в Python, используя numpy

Метод 2: с помощью функции loadtxt()

Функция loadtxt NumPy — это простой инструмент для загрузки данных из текстовых файлов с упором на числовые данные в Python. В отличие от genfromtxt, loadtxt обычно работает быстрее, но менее гибок. Он не обрабатывает пропущенные значения и более ограничен в обработке нечисловых столбцов.

Однако loadtxt по-прежнему можно использовать для чтения файлов CSV с заголовками с некоторой ручной обработкой.

Синтаксис:

data = np.loadtxt(Filename, delimiter=',', skiprows=1)

Здесь:

Имя Описание
Filename Имя входного CSV-файла, который мы хотим прочитать.
delimiter Параметр delimiter=’,’ указывает, что файл разделен запятыми.
skiprows Аргумент skiprows=1 сообщает loadtxt пропустить первую строку(которая обычно является заголовком в файле CSV).
Usecols Usecols используется для выбора определенных столбцов.

Пример: Давайте попробуем прочитать CSV-файл с заголовком на Python.

import numpy as np

Filename = 'C:/Users/kumar/OneDrive/Desktop/CSVFile.csv'
with open(Filename, 'r') as f:
    header = f.readline().strip().split(',')

data = np.loadtxt(Filename, delimiter=',', skiprows=1, usecols=(1, 3))

ages = data[:, 0]  # Age data
salaries = data[:, 1]  # Salary data

print(header)
print(ages)
print(salaries)

Вывод: здесь мы печатаем заголовки и некоторые данные под некоторыми заголовками в виде массива в Python.

['Name', 'Age', 'Department', 'Salary']
[28. 32. 45.]
[50000. 65000. 52000.]

как читать CSV-файл в numpy Python

Таким образом, мы можем использовать NumPy для чтения CSV с заголовком в Python.

Метод 3: с помощью csv.reader()

Функция csv.reader считывает файл построчно и возвращает каждую строку в виде списка строк в Python. Это означает, что нам нужно будет вручную преобразовать числовые данные в соответствующие типы.

Пример. Вот как мы можем использовать csv.reader для чтения файла CSV, а затем преобразовать его в массив NumPy в Python.

import numpy as np
import csv

path = 'C:/Users/kumar/OneDrive/Desktop/CSVFile.csv'
with open(path, 'r') as f:
    reader = csv.reader(f, delimiter=',')
    headers = next(reader)
    data = np.array(list(reader)).astype(str)

print(headers)

Вывод:

['Name', 'Age', 'Department', 'Salary']

Метод 3: с помощью csv.reader()

Добавить комментарий