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爬虫之HTTP异常处理
Nov 05 Python
Python脚本在Appium库上对移动应用实现自动化测试
Apr 17 Python
详细解读Python的web.py框架下的application.py模块
May 02 Python
Python 爬虫之Beautiful Soup模块使用指南
Jul 05 Python
Flask框架使用DBUtils模块连接数据库操作示例
Jul 20 Python
Python使用Shelve保存对象方法总结
Jan 28 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
Jun 05 Python
Python实现的ftp服务器功能详解【附源码下载】
Jun 26 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
Jul 03 Python
详解Python在使用JSON时需要注意的编码问题
Dec 06 Python
Python魔术方法专题
Jun 19 Python
Python CategoricalDtype自定义排序实现原理解析
Sep 11 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
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
JS 巧妙获取剪贴板数据 Excel数据的粘贴
2009/07/09 Javascript
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
javascript权威指南 学习笔记之变量作用域分享
2011/09/28 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
20个最常见的jQuery面试问题及答案
2018/05/23 jQuery
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
微信小程序实现图片滚动效果示例
2018/12/05 Javascript
移动端如何用下拉刷新的方式实现上拉加载
2018/12/10 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
vue实现简单的日历效果
2020/09/24 Javascript
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
python显示生日是星期几的方法
2015/05/27 Python
Python实现的最近最少使用算法
2015/07/10 Python
如何在django中添加日志功能
2020/02/06 Python
Python调用C语言程序方法解析
2020/07/07 Python
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
2015/07/23 面试题
五一劳动节活动记录
2014/03/23 职场文书
运动员获奖感言
2014/08/15 职场文书
四风问题对照检查材料
2014/09/22 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
简历中的自我评价应该这样写!
2019/07/12 职场文书
Mysql Online DDL的使用详解
2021/05/20 MySQL
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers