【发布时间】:2013-03-07 01:36:15
【问题描述】:
假设我有一个文件myfile.txt,其中包含:
1 2.0000 buckle_my_shoe
3 4.0000 margery_door
如何将文件中的数据作为 int、float 和 string 导入 numpy 数组?
我的目标是:
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)
【问题讨论】:
-
只需将文件读入一个字符串,在每个
\n换行符上拆分字符串,然后用 3- 和 2 个空格分解这些内部。否则,您也可以只使用正则表达式来查找每一行并将它们拆分(组)。 -
我认为更重要的问题是您将如何处理这些数据导入后。虽然您可以使用
numpy处理非数字数据,但如果您想用它做任何有趣的事情,您可能最终会重新发明pandas的一些部分...... -
更多基本解释你可能想看看stackoverflow.com/a/10940038/2062965