numpy 中关于genfromtxt的几个示例

__author__ = 'tum'

import numpy as np


#一个最简单的例子
f = open('test.csv', 'w')
f.write("1,1.2,1.3\n2,2.2,2.3")
f.close()
a = np.genfromtxt('test.csv', dtype=[('myint','i8'),('myfloat','f8'), ('mystring','U5')], delimiter=",", comments='#')
print (a)

#字段中有中文,成功!
def conv_str_chs(x):
    # print(x)
    return x.decode('gb2312')

f = open('test.csv', 'w')
f.write("1,1.2,今123天\n2,2.2,789天")
f.close()
a = np.genfromtxt('test.csv', dtype=[('myint','i8'),('myfloat','f8'), ('mystring','U5')], delimiter=",", comments='#',
                  converters={2:conv_str_chs})
print (a)

#空缺部分字段, 使用默认填充。文档中描述:
# Expected type Default
# bool False
# int -1
# float np.nan
# complex np.nan+0j
# string '???'

f = open('test.csv', 'w')
f.write(",,")
f.close()
a = np.genfromtxt('test.csv', dtype=[('myint','i8'),('myfloat','f8'), ('mystring','U5')], delimiter=",", comments='#',
                  filling_values={0:9, 1:9.9, 2:'abc'})
print (a)





运行结果输出:

[(1, 1.2, '1.3') (2, 2.2, '2.3')]
[(1, 1.2, '今123天') (2, 2.2, '789天')]
(9, 9.9, '')

上述示例解决了长期困扰我的csv文件中的中文输出、字段空缺问题。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值