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.