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