使用numpy.genfromtxt在Python 3中加载UTF-8文件

使用numpy.genfromtxt在Python 3中加载UTF-8文件,第1张

使用numpy.genfromtxt在Python 3中加载UTF-8文件

在Python3中,我可以执行以下 *** 作:

In [224]: txt = "Côte d'Ivoire"In [225]: x = np.zeros((2,),dtype='U20')In [226]: x[0] = txtIn [227]: xOut[227]: array(["Côte d'Ivoire", ''],   dtype='<U20')

这意味着我可能可以打开“ UTF-8”文件(常规模式,而不是字节模式),并读取行,并将其分配给数组元素,例如

x

但是,

genfromtxt
坚持使用无法处理较大
UTF-8
集合(7字节v
8)的字节字符串(ascii)进行 *** 作。所以我需要
depre
在某个时候申请以获得一个
U
数组。

我可以使用以下命令将其加载到“ S”数组中

genfromtxt

In [258]: txt="Côte d'Ivoire"In [259]: a=np.genfromtxt([txt.enpre()],delimiter=',',dtype='S20')In [260]: aOut[260]: array(b"Cxc3xb4te d'Ivoire",  dtype='|S20')

并应用于

depre
各个元素

In [261]: print(a.item().depre())Côte d'IvoireIn [325]: print _Côte d'Ivoire

或用于

np.char.depre
将其应用于数组的每个元素:

In [263]: np.char.depre(a)Out[263]: array("Côte d'Ivoire", dtype='<U13')In [264]: print(_)Côte d'Ivoire

genfromtxt
让我指定
converters

In [297]: np.genfromtxt([txt.enpre()],delimiter=',',dtype='U20',    converters={0:lambda x: x.depre()})Out[297]: array("Côte d'Ivoire", dtype='<U20')

如果

csv
混合使用字符串和数字,则此
converters
方法将比容易使用
np.char.depre
。只需为每个字符串列指定转换器。

(请参阅我先前对Python2尝试的编辑)。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5666664.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存