利用python将二值csv格式转换为矩阵
#!/usr/bin/env python
# coding:utf-8
#import pandas as pd, numpy as np;
'''
将csv文件转换为对应的邻接矩阵mat
'''
from numpy import *;
def protein_complexes_trans():
    file = open('protein_complexes.csv');
    filePro = open('complexes', 'a');
    fileTarget = open('targets(complexes)','a');
    fileInter = open('protein_complexes_interaction_matrix', 'a');
    proteins = [];
    targets = [];
    while 1:
        line = file.readline();
        if not line:
            break;
        token = line.split(';');
        targ = token[1].split(',');
        for i in range(0,len(targ)):
            targets.append(targ[i]);
        proteins.append(token[0]);
    file.seek(0);  #将指针重置回第一行
    proArr = unique(array(proteins)).tolist();  #去重,并删去最后一项(标题)
    tarArr = unique(array(targets)).tolist();  #删去最后
#mat为邻接矩阵
    mat = zeros((len(proArr),len(tarArr)), dtype = int16);
    while 1:
        line = file.readline();
        if not line:
            break;
        token = line.split(';');
        targ = token[1].split(',');
        row = proArr.index(token[0]);
        for i in range(0, len(targ)):
            col = tarArr.index(targ[i]);
            mat[row][col] = 1;
    #输出药物和靶向的列表
    for i in proArr:
        filePro.write('%s\n' % i);
    for i in tarArr:
        fileTarget.write('%s\n' % i);
    print "%d&%d" % (len(proArr), len(tarArr));
    interMat = mat.tolist();
    #将矩阵写入文件
    for i in range(0, len(proArr)):
        fileInter.write('%s\n' % (str(interMat[i])));
    return 0;
def drugs_targets_trans():
    #print 'hello world';
    file = open('drugs_targets_sum');
    fileDrug = open('drugs', 'a');
    fileTarget = open('targets','a');
    fileInter = open('drugs_targets_interaction_matrix', 'a');
    drugs = [];
    targets = [];
    while 1:
        line = file.readline();
        if not line:
            break;
        token = line.split(';');
        targ = token[1].split(',');
        for i in range(0,len(targ)):
            targets.append(targ[i]);
            drugs.append(token[0]);
    file.seek(0);  #将指针重置回第一行
    drugArr = unique(array(drugs)).tolist();  #去重,并删去最后一项(标题)
    tarArr = unique(array(targets)).tolist();  #删去最后
#mat为邻接矩阵
    mat = zeros((len(drugArr),len(tarArr)), dtype = int16);
    while 1:
        line = file.readline();
        if not line:
            break;
        token = line.split(';');
        targ = token[1].split(',');
        row = drugArr.index(token[0]);
        for i in range(0, len(targ)):
            col = tarArr.index(targ[i]);
            mat[row][col] = 1;
    #输出药物和靶向的列表
    for i in drugArr:
        fileDrug.write('%s\n' % i);
    for i in tarArr:
        fileTarget.write('%s\n' % i);
    interMat = mat.tolist();
    for i in range(0, len(drugArr)):
        fileInter.write('%s\n' % (str(interMat[i])));
#protein_complexes_trans();
drugs_targets_trans();
利用python将二值csv格式转换为矩阵的更多相关文章
- python 爬虫数据存入csv格式方法
		python 爬虫数据存入csv格式方法 命令存储方式:scrapy crawl ju -o ju.csv 第一种方法:with open("F:/book_top250.csv" ... 
- 利用Python计算π的值,并显示进度条
		利用Python计算π的值,并显示进度条 第一步:下载tqdm 第二步;编写代码 from math import * from tqdm import tqdm from time import ... 
- Mac OS X将CSV格式转换为Excel文档格式,Excel转CSV中文乱码问题
		一:在Mac上假设你使用Excel打开windows导出的CSV格式文档.你会发现表格中全部的的内容都显示在A列. 那么,怎样恢复正常呢,你能够将CSV格式的文档导入到Excel文档中,这样就正常显示 ... 
- 10、OpenCV Python 图像二值化
		__author__ = "WSX" import cv2 as cv import numpy as np #-----------二值化(黑0和白 255)---------- ... 
- python图片二值化提高识别率
		import cv2from PIL import Imagefrom pytesseract import pytesseractfrom PIL import ImageEnhanceimport ... 
- opencv python 图像二值化/简单阈值化/大津阈值法
		pip install matplotlib 1简单的阈值化 cv2.threshold第一个参数是源图像,它应该是灰度图像. 第二个参数是用于对像素值进行分类的阈值, 第三个参数是maxVal,它表 ... 
- 利用Python制作二维码
		利用简单的Python代码制作二维码 一.制作工具 安装Python环境 + PyCharm编译器. 二.电脑系统 本人win10 + Python3.7.0 + PyCharm. 三.写代码前先下载 ... 
- 利用mysqldump命令导出为csv格式文件
		解决方法: 先导出为txt文件,其内容是以逗号“,”分隔的,得到txt文件后,再自行处理为.csv或者.xls文件. 参数说明: -t, --no-create-info Don't write ... 
- python习题_读写csv格式的文件
		1.读写TXT文件 # *_* coding : UTF-8 *_* # 开发人员 : zfy # 开发时间 :2019/7/7 16:26 # 文件名 : lemon_10_file.PY # 开发 ... 
随机推荐
- 多个精美的导航样式web2.0源码
			效果体验:http://keleyi.com/keleyi/phtml/divcss/6.htm 兼容多浏览器,例如IE,Chrome,火狐 等. 完整代码,保存到htm文件打开也可以查看效果: &l ... 
- css制作漂亮彩带导航条菜单
			点击这里查看效果:http://keleyi.com/keleyi/phtml/divcss/17.htm 效果图: 以下是源代码: <!DOCTYPE html PUBLIC "-/ ... 
- 一款简洁大气的jquery日期日历插件
			本jquery插件名为manhuaDate,暂时只支持jquery 1.9.0以下版本,比如jquery-1.8.3.min.js 查看效果网址:http://keleyi.com/a/bjad/em ... 
- 很漂亮的用户登录界面HTML模板
			效果预览:http://keleyi.com/keleyi/phtml/divcss/21.htm HoverTree开源项目实现了分层后,准备实现管理员后台登录,这里先把登录界面的HTML模板整理好 ... 
- HTML 迷宫
			今天补个遗,将很久以前研究 HTML5 的时候写的生成迷宫.迷宫寻路程序整理出来. 下载链接在文章最后. 简介 为什么要做这个 HTML5 迷宫程序?因为我喜欢.我愿意.也是向老程序员学习(见第5节) ... 
- Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误
			嵌套Fragment的使用及常见错误 嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment. 使用时, 主要要依靠宿主Fragment的 ge ... 
- iOS开发之功能模块--高仿Boss直聘的常用语的开发
			首先上Boss直聘的功能界面截图,至于交互请读者现在Boss直聘去交互体验: 本人的公司项目要高仿Boss直聘的IM常用语的交互功能,居然花费了我前后17个小时完成,这回自己测试了很多遍,代码 ... 
- 基于物理渲染的渲染器Tiberius计划
			既然决定实现一个光栅化软件渲染器,我又萌生了一个念头:实现一个基于物理渲染的渲染器. 
- 关于watir-webdriver中文乱码问题
			require 'watir-webdriver' require 'iconv' cov = Iconv.new( 'gbk', 'utf-8') b = Watir::Browser.new b. ... 
- TOP命令各个参数代表意义详解
			Top命令是Linux下常用的系统性能分析工具,能实时查看系统中各个进程资源占用情况. top - 16:24:25 up 284 days, 4:59, 1 user, load average: ... 
