首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将csv模块与numpy数组一起使用

将csv模块与numpy数组一起使用
EN

Stack Overflow用户
提问于 2014-04-09 06:11:22
回答 1查看 234关注 0票数 1

如何使用csv模块读取器将已解析的行存储在numpy数组中?我想使用csv模块,因为它支持quotechar,并且我的数据有许多嵌入的逗号。我有一个非常广泛的异构数据文件。我已经将列名和numpy数据类型存储在元组列表中。

这有可能吗?我发现有几次提到人们同时使用csv模块和numpy/scipy,但我还没有看到实际的实现。

这就是我到目前为止所知道的:

下面是我的dtype数组的一个示例:

代码语言:javascript
复制
In [0]: np_dtypes[20:30]
Out[0]:
[('out_sec_range', dtype('S16')),
 ('out_p_city_name', dtype('S16')),
 ('out_st', dtype('S16')),
 ('out_z5', dtype('S16')),
 ('out_zip4', dtype('S16')),
 ('out_lat', dtype('S16')),
 ('out_long', dtype('S16')),
 ('out_county', dtype('S16')),
 ('out_geo_blk', dtype('S16')),
 ('out_addr_type', dtype('S16'))]

这是我用来导入数据的函数:

代码语言:javascript
复制
def import_csv(f, dtypes):
     with open(f, 'r') as csvfile:
          reader = csv.reader(csvfile, delimiter=',', quotechar='"')
          next(reader, None)
          for row in reader:
               # this fails
               data = np.array(row, dtype=dtypes)
               print data

我的主要目标是能够将带有嵌入逗号的csv文件导入到numpy数据结构中。

EN

回答 1

Stack Overflow用户

发布于 2014-04-15 21:59:50

您也许可以将np.genfromtxt()与一个处理它的每一行的函数一起使用:

代码语言:javascript
复制
def myfunc(line):
    return line.replace('"', '') # removing the quotes


a = np.genfromtxt((myfunc(line) for line in open(fname)), dtype=None)

注意:您可以使用dtype而不是None,但是如果您的第一行包含列名,则后者通常可以正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22949195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档