python文本处理总结

本文总结了Python在处理文本时的一些常见问题和解决方案,包括去除字符串中的无关字符,二维数组到列表的转化,split函数的限制及其扩展,以及二维数组在文件存储中的最佳实践。在处理大量数据时需要注意内存管理,避免内存溢出,如使用gc模块释放内存。同时,文件读写过程中要防止一次性加载整个文件导致的MemoryError。
摘要由CSDN通过智能技术生成

1. 除去字符串中,不需要的字符,只要有用的字符,如

string_list = '[1.0,2.0,0.,3.0]\n' # 只想保留数字
解决方案:使用string模块中的maketrans()和translate()函数

import string
allchars = string.maketrans('', '')  # maketrans函数生成一个翻译表(这里默认)
string_list = '[1. 0. 1. 0. 1. 1.]\n'.translate(allchars, '[]\n')   # 过滤掉第二个参数中的字符

list_str = string_list.split(" ")       # 将字符串分割(split)为字符串列表类型
list_float = map(float, list_str)       # 将列表中元素,由字符串类型转换为浮点数
# 或者list_float = [float(e) for e in list_str] 也可以
arr_float = np.array(list_float)            # 是数组类型,但是每一个元素都是浮点数
print 'arr_float.astype:', arr_float.astype

2. 将二维数组转化为列表形式list(list)

本人遇到的问题是,如果直接将二维数组写入文件,那么每一行(一条记录)无法写入一行,那个如果下次直接使用f.readlines()函数,获得的每一行并不是一个样本,虽然使用正则表达式和re模块可以解决,不过有些麻烦,因此,本人将每条记录用列表(list)表示,所有样本用list表示。因此将数组转化为列表的方法:

list_data = []
    num_rows, num_cols = shape(array_data)
    for i in range(num_rows):
        list_rows = []
        for j in range(num_cols):
            list_rows.append(ro
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值