python如何读取.mtx文件


Posted in Python onApril 22, 2021

mtx文件是按照稀疏矩阵格式存储的矩阵数据,可以按照以下步骤读取:

1、安装scanpy包

pip install scanpy

2、文件读取

import scanpy as sc 
adata = sc.read(filename)
data = adata.X

第一行read之后返回的是annData,第二行通过.X操作得到的是矩阵数据

3、转换为稠密矩阵

data = data.todense()

直接得到的矩阵是稀疏形式的,通过todense函数可转换为稠密矩阵

补充:python读取各种文件方式

Json:

use_time=[]
with open(address,'r') as f: #ubuntu
    mobile = json.load(f)
    calls = mobile["transactions"][0]["calls"]
for call in calls: 
  use_time.append(str(call['use_time']))

Excel:

rawdata1=open_workbook(address)
rawdata=rawdata1.sheet_by_index(0)
for i in range(1,rawdata.nrows):
    if rawdata.cell(i,date_index).value=="": #跳过空行
        continue
    else:
        if ctype==3:  #若为3,则用datetime模块处理日期
            date1=rawdata.cell(i,date_index).value
            date2 = xldate_as_tuple(date1,0) 
            date3=datetime(*date2)
            if "." in str(rawdata.cell(i,phone_index).value):
                phone1=str(rawdata.cell(i,phone_index).value)[:-2]  
            else:
                phone1=str(rawdata.cell(i,phone_index).value)

写EXCEL:

Excel_file = xlwt.Workbook() 
sheet = Excel_file.add_sheet('sheet0')
header=[u'号码','日期top1','日期top2','日期top3']
#写入标题行:
for i in range(len(header)):
    sheet.write(0,i,header[i])
#开始按行写入数据:
for i in range(len(phonelist)):
    sheet.write(i+1,0,phonelist[i])
    sheet.write(i+1,1,dic[str(phonelist[i])])
#保存EXCEL:
Excel_file.save("C:/Users/Desktop/100个文件输出xls/"+str(fileName)+".xls")

CSV:

rawdata=pd.read_csv(address,skip_blank_lines=True) #参数为去除空行
if 'start_time' or 'begin_time'  in rawdata.columns:
    if 'start_time' in rawdata.columns:
        start_time=rawdata['start_time']
    elif 'begin_time' in rawdata.columns:
            start_time=rawdata['begin_time']

txt:

rawdata=open(address,'r')
i=0
a=[] #c存放第一行的列名
for line in rawdata:
    if i==1: #默认第二行开始存储通话数据
        a=line.split(',') #逗号作为分隔符
        for j in range(len(a)): #查找指定列名所在的列下标
            if (('-' in str(a[j]))or('/' in str(a[j]))): #判断日期所在列数
                date_index=j #保存日期的列下标
            elif  str(a[j]).isdigit() and len(str(a[j]))>5: #默认全为数字组成的字符串为电话号码
                phone_index=j
            else:
                pass
        break
    else:
        i+=1
i=0
for line in rawdata:#开始转存数据:
    if len(line)<10: #跳过空行
        continue
    data_line=line.split(',') #txt默认以','分隔数据
    if i==0:
        pass #第一行为列名,跳过
        i+=1
    else: #从第二行开始保存数据
        start_time.append(data_line[date_index])

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Python 相关文章推荐
Python 异常处理的实例详解
Sep 11 Python
python中Apriori算法实现讲解
Dec 10 Python
python生成器,可迭代对象,迭代器区别和联系
Feb 04 Python
numpy 进行数组拼接,分别在行和列上合并的实例
May 08 Python
pytorch + visdom 处理简单分类问题的示例
Jun 04 Python
对python指数、幂数拟合curve_fit详解
Dec 29 Python
pandas通过字典生成dataframe的方法步骤
Jul 23 Python
python生成requirements.txt的两种方法
Sep 18 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 Python
python如何使用腾讯云发送短信
Sep 17 Python
Pandas搭配lambda组合使用详解
Jan 22 Python
Python 读取千万级数据自动写入 MySQL 数据库
Jun 28 Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
python numpy中setdiff1d的用法说明
Apr 22 #Python
一行代码python实现文件共享服务器
Apr 22 #Python
python数据分析之用sklearn预测糖尿病
You might like
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
JS异常处理try..catch语句的作用和实例
2014/05/05 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
dwz 如何去掉ajaxloading具体代码
2013/05/22 Javascript
JQuery对class属性的操作实现按钮开关效果
2013/10/11 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
vue组件父子间通信之综合练习(聊天室)
2017/11/07 Javascript
vue-cli创建的项目,配置多页面的实现方法
2018/03/15 Javascript
js计时事件实现圆形时钟
2020/03/25 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python生成IP段的方法
2015/07/07 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
Python生成一个迭代器的实操方法
2019/06/18 Python
Python 实现黑客帝国中的字符雨的示例代码
2020/02/20 Python
Django框架实现在线考试系统的示例代码
2020/11/30 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
JAVA程序员面试题
2012/10/03 面试题
网络专业学生个人的自我评价
2013/12/16 职场文书
数学系个人求职信范文
2014/01/30 职场文书
个人评语大全
2014/05/04 职场文书
村容村貌整治方案
2014/05/21 职场文书
党委班子对照检查材料
2014/08/19 职场文书
财务审计整改报告
2014/11/06 职场文书
高中生个性发展自我评价
2015/03/09 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
小学同学聚会感言
2015/07/30 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android