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实现的文件夹清理程序分享
Nov 22 Python
Django原生sql也能使用Paginator分页的示例代码
Nov 15 Python
TensorFlow入门使用 tf.train.Saver()保存模型
Apr 24 Python
pandas.DataFrame选取/排除特定行的方法
Jul 03 Python
python面试题小结附答案实例代码
Apr 11 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
Jun 19 Python
python pytest进阶之conftest.py详解
Jun 27 Python
python画图的函数用法以及技巧
Jun 28 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
Jun 11 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
利用python+request通过接口实现人员通行记录上传功能
Jan 13 Python
python实现代码审查自动回复消息
Feb 01 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
PHP Switch 语句之学习笔记
2013/09/21 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
javascript学习随笔(使用window和frame)的技巧
2007/03/08 Javascript
javascript add event remove event
2008/04/07 Javascript
javascript Excel操作知识点
2009/04/24 Javascript
javascript入门基础之私有变量
2010/02/23 Javascript
基于jquery的checkbox下拉框插件代码
2010/06/25 Javascript
菜鸟javascript基础整理1
2010/12/06 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
2014/06/12 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
jquery利用拖拽方式在图片上添加热链接
2015/11/24 Javascript
深入分析javascript中的错误处理机制
2016/07/17 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
Html5+jQuery+CSS制作相册小记录
2016/12/30 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
Three.js基础学习教程
2017/11/16 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
javascript实现一款好看的秒表计时器
2020/09/05 Javascript
web.py在SAE中的Session问题解决方法(使用mysql存储)
2015/06/24 Python
详细介绍Python的鸭子类型
2016/09/12 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
python3实现钉钉消息推送的方法示例
2019/03/14 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
罗技英国官方网站:Logitech UK
2020/11/03 全球购物
监察建议书格式
2014/05/19 职场文书
讲党性心得体会
2014/09/03 职场文书
关于有小孩的离婚协议书
2014/10/26 职场文书
会议欢迎词
2015/01/23 职场文书
2015年“七七卢沟桥事变”纪念活动总结
2015/03/24 职场文书
Python使用UDP实现720p视频传输的操作
2021/04/24 Python