如何在Python3中解码编码的文字/字符串的numpy数组?AttributeError:“ numpy.ndarray”对象没有属性“ decode”

ShanZhengYang

在Python 3,我有如下NumPy的阵列strings

每个stringNumPy阵列的形式b'MD18EE,而不是MD18EE

例如:

import numpy as np
print(array1)
(b'first_element', b'element',...)

通常,人们会使用它们.decode('UTF-8')来解码这些元素。

但是,如果我尝试:

array1 = array1.decode('UTF-8')

我收到以下错误:

AttributeError: 'numpy.ndarray' object has no attribute 'decode'

如何解码从这些元素NumPy数组?(也就是说,我不希望b''

编辑:

假设我只处理以Pandas DataFrame这种方式编码的某些列。例如:

import pandas as pd
df = pd.DataFrame(...)

df
        COL1          ....
0   b'entry1'         ...
1   b'entry2'
2   b'entry3'
3   b'entry4'
4   b'entry5'
5   b'entry6'
hpaulj

您有一个字节串数组;dtype是S

In [338]: arr=np.array((b'first_element', b'element'))
In [339]: arr
Out[339]: 
array([b'first_element', b'element'], 
      dtype='|S13')

astype 轻松地将它们转换为Unicode,为PY 3的默认字符串类型。

In [340]: arr.astype('U13')
Out[340]: 
array(['first_element', 'element'], 
      dtype='<U13')

还有的字符串功能库-将相应的str方法为一个字符串数组的元素

In [341]: np.char.decode(arr)
Out[341]: 
array(['first_element', 'element'], 
      dtype='<U13')

astype速度更快,但decode允许您指定的编码。

另请参见如何解码dtype = numpy.string_的numpy数组?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章