2017-10-31 3 views
0

私はnumpyののloadtxtコマンドを使用したいので、私はこの試みた:Pythonのnumpyのloadtxtとウィンドウのパス?

lines = loadtxt("D:/My Desktop/Enwate syllables.txt", comments="#", delimiter=",", unpack=False) 

が、それはハード障害が発生した "フロートする文字列を変換できませんでした:B '\のXeF \ XBB \ xbfen'"

Iを試してみました

f = open("D:/My Desktop/Enwate syllables.txt") 

これは問題ありません。私はloadtxtで何が間違っていますか?

PS。上に示したように、 "open"コマンドが完全にうまく機能するので、文字列とすべてを取得するので、エンコードの問題ではありません。ところで、このファイルは、各行に1つの単語を含むシンプルなASCIIテキストファイルです。

+0

[Numpy loadtxt encoding](https://stackoverflow.com/questions/24694736/)の可能な複製numpy-loadtxt-encoding) – eyllanesc

+0

このファイルのサンプルをお送りいただきましたら助かります。 '\ xef \ xbb \ xbfen'は実際には単純なASCII文字の1つですか? – hpaulj

+0

この時点で、おそらく私はloadtxtの使用を中止し、単純なオープンを使用して戻ってきたので、私はこの質問を削除する必要がありました。 – Sindyr

答えて

0

あなたがnumpyのが

from io import StringIO 
j= StringIO(u'c 1\nd 2') 
np.loadtxt(j) 

が完全に正常に動作

ValueError: could not convert string to float: c

しかし

np.loadtxt(j,dtype={'names': ('char', 'num'),'formats': ('S1', 'i4')}) 
で失敗例えば それを割り当てることができますので、手の前にDTYPEを言及する必要があります。テキストファイルは、数値データ型と文字データ型の両方を持っている場合

ので、あなたはloadtxtが失敗しない数値のみを使用してファイルを試してみてください-ifので、dtype

PSを使用してそのフォーマットを言及する必要がありますあなたのファイルに文字列がある場合は、そのプライマリデータ型がfloat型であると推測します。