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通过解析网页实现看报程序的方法
Aug 04 Python
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
May 06 Python
python对json的相关操作实例详解
Jan 04 Python
Python 多线程实例详解
Mar 25 Python
pyhton列表转换为数组的实例
Apr 04 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
Jul 16 Python
Python3 使用selenium插件爬取苏宁商家联系电话
Dec 23 Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 Python
python 穷举指定长度的密码例子
Apr 02 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
Feb 01 Python
Python中json.load()和json.loads()有哪些区别
Jun 07 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运行模式的深入理解
2013/06/03 PHP
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
php处理带有中文URL的方法
2016/07/11 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
2018/08/21 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
浅谈js中字符和数组一些基本算法题
2016/08/15 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
JS库之Particles.js中文开发手册及参数详解
2017/09/13 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
分享JS表单验证源码(带错误提示及密码等级)
2020/01/05 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
Hadoop中的Python框架的使用指南
2015/04/22 Python
python2.6.6如何升级到python2.7.14
2018/04/08 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
自学python用什么系统好
2020/06/23 Python
Pytorch 卷积中的 Input Shape用法
2020/06/29 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
欧舒丹澳洲版:L’OCCITANE
2017/07/17 全球购物
英国最大的专业户外零售商:Mountain Warehouse
2018/06/06 全球购物
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
网络工程师职业规划
2014/02/10 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
骨干教师个人总结
2015/02/11 职场文书
儿童诗两首教学反思
2016/02/23 职场文书