numpy.fromstring()
Функция numpy.fromstring() создаёт одномерный массив, разбирая строку с числами, разделёнными указанным символом. Удобно для парсинга CSV-фрагментов и пакетов от датчиков.
Предупреждение
В современных версиях NumPy fromstring() для бинарных данных считается устаревшим — используйте numpy.frombuffer(). Для текстовых данных по-прежнему рекомендуется передавать sep.
Сигнатура
numpy.fromstring(string, dtype=float, count=-1, *, sep)
Параметры
string— исходная строка с числами.dtype— тип элементов (по умолчаниюfloat64).count— сколько элементов прочитать (-1 — все).sep— разделитель чисел (пробел, запятая и т.д.). Обязателен для текстового режима.
Возвращаемое значение
ndarray — одномерный массив, заполненный числами, разобранными из строки.
Примеры
Пример 1. Числа через пробел.
import numpy as np
s = "1 2 3 4 5"
arr = np.fromstring(s, sep=' ', dtype=int)
print(arr)
[1 2 3 4 5]
Пример 2. Запятая как разделитель.
s = "1.5, 2.5, 3.5, 4.5"
arr = np.fromstring(s, sep=',')
print(arr)
[1.5 2.5 3.5 4.5]
Пример 3. Ограничение count.
s = "10 20 30 40 50"
arr = np.fromstring(s, sep=' ', dtype=int, count=3)
print(arr)
[10 20 30]
Пример 4. Парсинг строки с UART.
# Arduino отправил CSV: "T,H,P" → температура, влажность, давление
line = "23.5,45.2,1013.7"
sample = np.fromstring(line, sep=',')
print(f"T={sample[0]}°C, H={sample[1]}%, P={sample[2]} гПа")
T=23.5°C, H=45.2%, P=1013.7 гПа
Пример 5. Несколько строк показаний.
lines = ["1 2 3", "4 5 6", "7 8 9"]
matrix = np.array([np.fromstring(l, sep=' ', dtype=int) for l in lines])
print(matrix)
[[1 2 3]
[4 5 6]
[7 8 9]]
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.