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学习笔记(二)基础语法
Jun 06 Python
基于Python实现一个简单的银行转账操作
Mar 06 Python
Python性能提升之延迟初始化
Dec 04 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
Aug 31 Python
python3实现磁盘空间监控
Jun 21 Python
python3 实现对图片进行局部切割的方法
Dec 05 Python
python3通过selenium爬虫获取到dj商品的实例代码
Apr 25 Python
详解python中__name__的意义以及作用
Aug 07 Python
Django Docker容器化部署之Django-Docker本地部署
Oct 09 Python
python生成任意频率正弦波方式
Feb 25 Python
解决python3插入mysql时内容带有引号的问题
Mar 02 Python
基于virtualenv创建python虚拟环境过程图解
Mar 30 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
网页游戏开发入门教程三(简单程序应用)
2009/11/02 PHP
PHP系列学习之日期函数使用介绍
2012/08/18 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
ThinkPHP中html:list标签用法分析
2016/01/09 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
关于 byval 与 byref 的区别分析总结
2007/10/08 Javascript
javascript Onunload与Onbeforeunload使用小结
2009/12/31 Javascript
JavaScript 面向对象的 私有成员和公开成员
2010/05/13 Javascript
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
javascript中JSON对象与JSON字符串相互转换实例
2015/07/11 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
利用JS实现页面删除并重新排序功能
2016/12/09 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
vue项目使用微信公众号支付总结及遇到的坑
2018/10/23 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
2019/11/13 Javascript
浅谈vue权限管理实现及流程
2020/04/23 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
python获取从命令行输入数字的方法
2015/04/29 Python
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
美国家具网站:Cymax
2016/09/17 全球购物
Melissa鞋马来西亚官方网站:MDreams马来西亚
2018/04/05 全球购物
年度考核评语
2014/01/19 职场文书
超市重阳节活动方案
2014/02/10 职场文书
教职工代表大会主持词
2014/04/01 职场文书
工厂清洁工岗位职责
2015/02/14 职场文书
学校少先队工作总结
2015/08/12 职场文书
电力安全学习心得体会
2016/01/18 职场文书
《比的意义》教学反思
2016/02/18 职场文书
python基于tkinter制作无损音乐下载工具
2021/03/29 Python