Dan*_*ans 2 csv numpy genfromtxt
我是numpy的新手,我很难将CSV读入带有genfromtxt的numpy数组.
我在网上找到了一个我正在使用的CSV文件作为示例.它是浮子和弦的混合物.它在这里:http://pastebin.com/fMdRjRMv
我正在使用numpy通过pylab(通过:ipython -pylab在Ubuntu系统上初始化).numpy.version.version是1.3.0.
这是我做的:
示例#1:
data = genfromtxt("fMdRjRMv.txt", delimiter=',', dtype=None)
data.shape
(374, 15)
data[10,10] ## Take a look at an example element
'30'
type(data[10,10])
type 'numpy.string_'
Run Code Online (Sandbox Code Playgroud)
CSV文件中没有错误的引号,所以我不知道为什么它应该认为该数字是一个字符串.有谁知道为什么会这样?
示例#2(跳过第一行):
data = genfromtxt("fMdRjRMv.txt",delimiter =',',dtype = None,skiprows = 1)
data.shape
(373)
有谁知道为什么它不能将所有这些都读成一维数组?
非常感谢!
在您的示例#1中,问题是单个列中的所有值必须共享相同的数据类型.由于数据文件的第一行具有列名,这意味着每列的数据类型都是字符串.
在跳过第一行的示例#2中,您有正确的想法.但请注意,1.3.0是一个相当旧的版本(我有1.6.1).在较新的版本skiprows
中已弃用,您应该使用skip_header
.
数组形状的原因(373,)
是它是一个结构化数组(参见http://docs.scipy.org/doc/numpy/user/basics.rec.html),这是numpy用来表示非均匀数据的.所以data[10]
给你一整排你的桌子.例如,您还可以按名称访问数据列data['f10']
.您可以在中找到列的名称data.dtype.names
.也可以使用数据文件第一行中定义的原始列名:
data = genfromtxt("fMdRjRMv.txt", dtype=None, delimiter=',', names=True)
Run Code Online (Sandbox Code Playgroud)
然后你可以访问像这样的列data['Age']
.
归档时间: |
|
查看次数: |
2015 次 |
最近记录: |