我想加载一个大的文本文件(大约1GB,3*10^6行和10-100列)作为包含字符串的2d np数组。 然而,它似乎像numpy。loadtxt()仅将浮点数作为默认值。 是否可以为整个数组指定另一种数据类型? 我试过以下没有运气:
loadedData = np.loadtxt(address, dtype=np.str)
我收到以下错误消息:
/Library/Python/2.7/site-packages/numpy-1.8.0.dev_20224ea_20121123-py2.7-macosx-10.8-x86_64.egg/numpy/lib/npyio.pyc in loadtxt(fname, dtype, comments, delimiter, converters, skiprows, usecols, unpack, ndmin)
833 fh.close()
834
--> 835 X = np.array(X, dtype)
836 # Multicolumn data are returned with shape (1, N, M), i.e.
837 # (1, 1, M) for a single row - remove the singleton dimension there
ValueError: cannot set an array element with a sequence
有什么想法吗? (我事先不知道我的文件中的列的确切数量。)
在Pandas中还有
read_csv
,速度快,支持非逗号列分隔符和按列自动键入:如果您喜欢这种类型,可以将其转换为NumPy数组:
这是迄今为止我遇到的最简单,最成熟的文本导入方法。