Функция genfromtxt
Функция genfromtxt загружает данные из текстового файла
в массив NumPy. В отличие от функции loadtxt, она
автоматически определяет типы данных столбцов и позволяет
обрабатывать пропущенные значения. Первым параметром
функция принимает имя файла или файловый объект.
Вторым параметром можно указать разделитель столбцов.
Синтаксис
np.genfromtxt(fname, delimiter=None, dtype=None,
names=None, skip_header=0, skip_footer=0,
missing_values=None, filling_values=None)
Параметры
Основные параметры функции genfromtxt:
-
fname- имя файла или файловый объект -
delimiter- разделитель столбцов (по умолчанию пробел) -
dtype- тип данных для результирующего массива -
names- имена столбцов или True для использования первой строки -
skip_header- количество строк для пропуска в начале файла -
skip_footer- количество строк для пропуска в конце файла -
missing_values- значения, которые следует считать пропущенными -
filling_values- значения для заполнения пропусков
Пример
Давайте создадим простой текстовый файл с данными и загрузим его:
1 2 3
4 5 6
7 8 9
import numpy as np
arr = np.genfromtxt('data.txt', delimiter=' ')
print(arr)
Результат выполнения кода:
[[1. 2. 3.]
[4. 5. 6.]
[7. 8. 9.]]
Пример
Загрузим данные с заголовком, пропуская первую строку:
col1 col2 col3
1 2 3
4 5 6
7 8 9
import numpy as np
arr = np.genfromtxt('data_with_header.txt',
delimiter=' ', skip_header=1)
print(arr)
Результат выполнения кода:
[[1. 2. 3.]
[4. 5. 6.]
[7. 8. 9.]]
Пример
Загрузим данные с использованием заголовка как названий столбцов:
col1 col2 col3
1 2 3
4 5 6
7 8 9
import numpy as np
arr = np.genfromtxt('data_with_header.txt',
delimiter=' ', names=True)
print(arr)
print(arr['col1'])
Результат выполнения кода:
[(1., 2., 3.) (4., 5., 6.) (7., 8., 9.)]
[1. 4. 7.]
Пример
Обработаем данные с пропущенными значениями:
1 2 3
4 NA 6
7 8 NA
import numpy as np
arr = np.genfromtxt('missing_data.txt',
delimiter=' ', missing_values='NA',
filling_values=0)
print(arr)
Результат выполнения кода:
[[1. 2. 3.]
[4. 0. 6.]
[7. 8. 0.]]