2016-07-28 13 views
2

私は.matファイルからデータを読み込んでいます。データは、数字の配列になっています。U3 dtypeからasciiへの変換

[array([u'ABT'], dtype='<U3')] 

これは配列の要素の1つです。配列から値 'ABT'だけを取得したいです。 Unicodeの正規化とEncode to ascii関数は機能しません。

答えて

0

encodeは文字列メソッドなので、文字列の配列に対して直接動作することはできません。しかし、各文字列にそれを適用する方法はいくつかあります。

ここで私はPy3を使っていますので、デフォルトはunicodeです。

In [179]: A=np.array(['one','two']) 
In [180]: A 
Out[180]: 
array(['one', 'two'], 
     dtype='<U3') 

普通の反復:

In [181]: np.array([s.encode() for s in A]) 
Out[181]: 
array([b'one', b'two'], 
     dtype='|S3') 

np.charは、配列の各要素に文字列方法を適用する機能を有する。

In [182]: np.char.encode(A) 
Out[182]: 
array([b'one', b'two'], 
     dtype='|S3') 

をこれはastype変換の一つであるように見えます処理できる:

In [183]: A.astype('<S3') 
Out[183]: 
array([b'one', b'two'], 
     dtype='|S3') 

と最近の質問に触発についてnp.chararrayWhat happened to numpy.chararray

In [191]: Ac=np.char.array(A) 
In [192]: Ac 
Out[192]: 
chararray(['one', 'two'], 
     dtype='<U3') 
In [193]: Ac.encode() 
Out[193]: 
array([b'one', b'two'], 
     dtype='|S3') 
関連する問題