16

次のファイルmyfile.txtを含むファイルがあるとします。

1   2.0000  buckle_my_shoe
3   4.0000  margery_door

ファイルからnumpy配列にint、float、stringとしてデータをインポートするにはどうすればよいですか?

私は取得することを目指しています:

array([[1,2.0000,"buckle_my_shoe"],
[3,4.0000,"margery_door"]])

私は何の役にも立たないように次のことをいじっています:

a = numpy.loadtxt('myfile.txt',dtype=(numpy.int_,numpy.float_,numpy.string_))

編集:別のアプローチは、ndarrayタイプを使用し、後で変換することです。

b = numpy.loadtxt('myfile.txt',dtype=numpy.ndarray)

    array([['1', '2.0000', 'buckle_my_shoe'],
       ['3', '4.0000', 'margery_door']], dtype=object)
4

2 に答える 2

17

使用numpy.genfromtxt

import numpy as np
np.genfromtxt('filename', dtype= None)
# array([(1, 2.0, 'buckle_my_shoe'), (3, 4.0, 'margery_door')], 
#       dtype=[('f0', '<i4'), ('f1', '<f8'), ('f2', '|S14')])
于 2013-03-18T16:20:47.523 に答える
6

パンダはあなたのためにそれをすることができます。使用できる関数のドキュメントはこちらです。

列がタブで区切られていると仮定すると、これでうまくいくはずです(この質問から採用)。

df = DataFrame.from_csv('myfile.txt', sep='\t')
array = df.values # the array you are interested in
于 2013-03-18T16:17:00.800 に答える