Вам следует пропустить часть ",".join()
, поскольку здесь это не нужно.
Вместо этого вы можете просто создать список values
в функции convert_to_ascii()
:
def convert_to_ascii(text):
return [ord(char) for char in text)
values = convert_to_ascii(data)
array = np.array(values)
Тем не менее, даже промежуточный список не нужен, так как массив numpy может быть создан из итерируемого.И это может сделать это эффективно, если вы заранее знаете длину.И вы делаете: это длина строки.Таким образом:
def convert_to_ascii(text):
for char in text:
yield ord(char)
array = np.fromiter(convert_to_ascii(data), count=len(data))
И эту функцию convert_to_ascii
можно заменить вызовом встроенной функции map
:
array = np.fromiter(map(ord, data), count=len(data))
Кстати, если ваш файлв кодировке UTF-8 вам, вероятно, следует открыть файл с параметром encoding="utf-8"
, чтобы быть уверенным.Значение по умолчанию зависит от платформы / локали.