Преобразовать строку в массив NumPy

Существует парсерная библиотека с именем android-plist-parser .

Пример кода (из проектных тестов):

PListXMLHandler handler = new PListXMLHandler();
parser.setHandler(handler);
parser.parse(/* plist content as String */);
PList actualPList = ((PListXMLHandler) parser.getHandler()).getPlist();
// use actualPList

16
задан Am1rr3zA 29 January 2015 в 05:44
поделиться

1 ответ

Добавление к вышеупомянутым ответам, numpy теперь дает депрекацию, предупреждающую, когда Вы используете fromstring
DeprecationWarning: The binary mode of fromstring is deprecated, as it behaves surprisingly on unicode inputs. Use frombuffer instead.
более оптимальный вариант А состоит в том, чтобы использовать fromiter . Это работает вдвое более быстро. Это - то, что я вошел в jupyter ноутбук -

import numpy as np
mystr = "100110"

np.fromiter(mystr, dtype=int)
>> array([1, 0, 0, 1, 1, 0])

# Time comparison
%timeit np.array(list(mystr), dtype=int)
>> 3.5 µs ± 627 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

%timeit np.fromstring(mystr, np.int8) - 48
>> 3.52 µs ± 508 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

%timeit np.fromiter(mystr, dtype=int)
1.75 µs ± 133 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
1
ответ дан 30 November 2019 в 10:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: