在Python 3,我有如下NumPy
的阵列strings
。
每个string
中NumPy
阵列的形式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'
您有一个字节串数组;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
允许您指定的编码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句