Функция fromfile
Функция fromfile читает бинарные данные из файла
и возвращает их в виде массива NumPy. Первым параметром
принимает имя файла или файловый объект. Вторым параметром
можно указать тип данных элементов. Третьим параметром -
количество элементов для чтения. Функция полезна для
чтения необработанных бинарных данных, сохранённых
другими программами, а также для чтения файлов в формате
.npy с помощью параметра allow_pickle.
Синтаксис
np.fromfile(file, dtype=float, count=-1, sep='', offset=0, *, like=None)
Пример
Давайте запишем бинарные данные в файл и прочитаем их с помощью fromfile:
import numpy as np
# Создаём массив и сохраняем его в бинарном формате
arr = np.array([1, 2, 3, 4, 5])
arr.tofile('data.bin')
# Читаем бинарные данные из файла
loaded = np.fromfile('data.bin', dtype=np.int32)
print(loaded)
Результат выполнения кода:
[1 2 3 4 5]
Пример
Давайте прочитаем из файла не все данные, а только первые три элемента:
import numpy as np
# Сохраняем массив в бинарный файл
arr = np.array([10, 20, 30, 40, 50, 60])
arr.tofile('data.bin')
# Читаем только первые 3 элемента
loaded = np.fromfile('data.bin', dtype=np.int32, count=3)
print(loaded)
Результат выполнения кода:
[10 20 30]
Пример
Давайте прочитаем двумерный массив, сохранённый в бинарном формате:
import numpy as np
# Сохраняем двумерный массив
matrix = np.array([[1, 2, 3], [4, 5, 6]])
matrix.tofile('matrix.bin')
# Читаем данные и изменяем форму
loaded = np.fromfile('matrix.bin', dtype=np.int32)
loaded = loaded.reshape(2, 3)
print(loaded)
Результат выполнения кода:
[[1 2 3]
[4 5 6]]
Пример
Давайте прочитаем данные из файла с использованием разделителя для текстовых данных:
import numpy as np
# Создаём текстовый файл с числами через запятую
with open('text_data.txt', 'w') as f:
f.write('1,2,3,4,5,6')
# Читаем данные с использованием запятой как разделителя
loaded = np.fromfile('text_data.txt', dtype=int, sep=',')
print(loaded)
Результат выполнения кода:
[1 2 3 4 5 6]
Пример
Давайте прочитаем файл в формате .npy, используя параметр allow_pickle:
import numpy as np
# Сохраняем массив в формате .npy
arr = np.array([100, 200, 300, 400])
np.save('array.npy', arr)
# Читаем данные из .npy файла
loaded = np.fromfile('array.npy', dtype=np.int32, offset=128)
print(loaded)
Результат выполнения кода:
[100 200 300 400]