字符串到单个字符的数组,无需沿途转换为列表

时间:2018-10-19 20:32:20

标签: python numpy

有没有一种方法可以将Python字符串转换为NumPy字符数组,其中每个单独的字符都是其自己的数组元素,而无需先将字符串转换为列表?我有一个程序,该程序必须处理大量数据,并且已经将转换步骤本身确定为瓶颈,但是我似乎找不到任何可以直接获取字符串并以这种方式转换它的NumPy函数,而无需先创建一个通用Python列表。

2 个答案:

答案 0 :(得分:1)

IIUC,可以使用fromiter将dtype指定为长度unicode的{​​{1}}。

1

official docs中一样,

  

存在chararray类是为了与Numarray向后兼容,   不建议将其用于新开发。 从numpy 1.4开始,如果   一个需要字符串数组,建议使用dtype数组   object_,string_或unicode _ ,然后在   numpy.char模块,用于快速向量化的字符串操作。

因此,如果您需要使用类似>>> np.fromiter('abcdefg', (np.unicode,1)) 的方法,请使用isalpha()模块,如下所示,而不再使用np.char类:

np.chararray

答案 1 :(得分:0)

import numpy as np
for i in np.fromstring('ab', dtype='|S1', sep=''):
    print(i.isalpha())

OR

np.fromiter('abcdefg', (np.str,1))