строка в массив отдельных символов БЕЗ конвертации в список по пути - PullRequest
0 голосов
/ 19 октября 2018

Есть ли способ преобразовать строку Python в массив символов NumPy, где каждый отдельный символ является собственным элементом массива, БЕЗ первого преобразования строки в список?У меня есть программа, которая должна делать это с большим количеством данных, и я определил сам шаг преобразования как узкое место, но я не могу найти какую-либо функцию NumPy, которая может напрямую взять строку и преобразовать ее таким образом без предварительного созданияобщий список Python.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018
import numpy as np
for i in np.fromstring('ab', dtype='|S1', sep=''):
    print(i.isalpha())

ИЛИ

np.fromiter('abcdefg', (np.str,1))
0 голосов
/ 19 октября 2018

IIUC, можно использовать fromiter, указав dtype равным unicode длины 1.

>>> np.fromiter('abcdefg', (np.unicode,1))

Как в официальных документах ,

Класс chararray существует для обратной совместимости с Numarray, он не рекомендуется для новых разработок. Начиная с numpy 1.4, если нужны массивы строк, рекомендуется использовать массивы dtype object_, string_ или unicode_ и использовать бесплатные функции в модуле numpy.char для быстрых векторизованных строковых операций.

Итак, если вам нужно использовать такие методы, как isalpha(), используйте модуль np.char, например, а не класс np.chararray:

>>> np.char.isalpha(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...