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 过滤字符串的技巧,map与itertools.imap
Sep 06 Python
Python httplib模块使用实例
Apr 11 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
python排序函数sort()与sorted()的区别
Sep 18 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
Oct 31 Python
python3中property使用方法详解
Apr 23 Python
python字典嵌套字典的情况下找到某个key的value详解
Jul 10 Python
对django views中 request, response的常用操作详解
Jul 17 Python
flask的orm框架SQLAlchemy查询实现解析
Dec 12 Python
selenium中get_cookies()和add_cookie()的用法详解
Jan 06 Python
Django User 模块之 AbstractUser 扩展详解
Mar 11 Python
jenkins+python自动化测试持续集成教程
May 12 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文档更新介绍
2011/07/22 PHP
jquery select选中的一个小问题
2009/10/11 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
js编写简单的聊天室功能
2017/08/17 Javascript
简述JS控制台的使用
2018/07/15 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
Electron-vue开发的客户端支付收款工具的实现
2019/05/24 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
深入理解javascript中的this
2021/02/08 Javascript
[01:14]2014DOTA2展望TI 剑指西雅图newbee战队专访
2014/06/30 DOTA
[08:42]DOTA2每周TOP10 精彩击杀集锦vol.2
2014/06/25 DOTA
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
安全生产月标语
2014/10/07 职场文书
2014年个人委托书范本
2014/10/13 职场文书
销售2014年度工作总结
2014/12/08 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
学历证明范文
2015/06/16 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
Python基础之函数嵌套知识总结
2021/05/23 Python
Spring Boot 排除某个类加载注入IOC的操作
2021/08/02 Java/Android
对讲机的最大通讯距离是多少
2022/02/18 无线电
python自动化测试之Selenium详解
2022/03/13 Python
JAVA 线程池(池化技术)的实现原理
2022/04/28 Java/Android