2

テキスト ファイルからデータを読み込んで、このデータの平均を取得しようとしていますが、フレキシブル タイプで縮小を実行できないというエラーが発生しています。理由がわかりません、誰か助けてください。ここに私のコードがあります。

right=open('01phi.txt','r').readlines()  
right=str(right) 
a=np.asarray(right)
b=np.mean(a)
print b

編集:私は現在この行を使用して いますが、配列内のこの行はそれほど大きくないため、right=np.genfromtxt('01phi.txt') このエラーが発生します。genfromtxt を使用して numpy に値が欠落している csv データをインポートするこのリンクは、最終行を無視する方法またはそれを埋める方法を教えてくれますが、これらの方法は両方とも平均を求めます。これを回避する方法はありますか?Line #10 (got 3 columns instead of 7)

4

1 に答える 1

4

rightは文字列です。np.asarray(some_string)文字列 dtype の配列を返します。NumPy のnp.mean関数は、文字列 dtype の配列を渡すと TypeError を発生させます。

In [29]: np.asarray('1 2 3')
Out[29]: 
array('1 2 3', 
      dtype='|S5')
In [31]: np.mean(a)
TypeError: cannot perform reduce with flexible type

代わりに、np.genfromtxtまたはnp.loadtxtを使用して、テキスト ファイルから配列を読み込みます。

a = np.genfromtxt(filename, ...)
于 2013-06-24T14:42:24.250 に答える