python二维数组上的一些操作

# -*- coding: utf-8 -*-
#读取文件内容,生成二维数组    

def generate_list2array(filepath):
    f = open(filepath,'r')
    i = 1
    t = f.readlines()
    total_rows = len(t)
    f.close()
    
    f = open(filepath,'r')
    list2array=[]
    while i<=total_rows:
        s = f.readline()
        slist = s.split() #字符串的split函数默认分隔符是空格 ' '
        list2array.append(slist) 
        i=i+1
    f.close()
    return list2array

#二维数组转置
def trans_list2array(list2array):
    rows = len(list2array)
    columns = len(list2array[0]) 
    t_list2array=[[r[col]for r in list2array] for col in xrange(columns)] 
    return t_list2array

#删除二维数组中,对应项组成的列中含有‘0’>=90%的每一行的此项
def delete_zero_columns(list2array):
    t_list2array = trans_list2array(list2array)
    t_rows = len(t_list2array)
    t_columns = len(t_list2array[0])
    not_zero_rows = []
    t_result_list = []
    #先记录per_of_zero>=0.9的行号,最后再统一删除,否则出现list index out of range错误
    for row in xrange(t_rows):
         per_of_zero = float(t_list2array[row].count('0'))/t_columns
         if per_of_zero<0.9:
             not_zero_rows.append(row)
    for row in xrange(len(not_zero_rows)):
        r = not_zero_rows[row]
        t_result_list.append(t_list2array[r])
    result_list = trans_list2array(t_result_list)
    return result_list
            
#将二维数组写回文件
def write_back(result_list , file_path):
    f = open(file_path,'w')
    f.writelines('\n'.join([' '.join(c for c in row) for row in result_list]))    
    f.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值