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操作MongoDB基础知识
Nov 01 Python
浅谈Python 字符串格式化输出(format/printf)
Jul 21 Python
Django开发中复选框用法示例
Mar 20 Python
Python爬虫常用小技巧之设置代理IP
Sep 13 Python
python通过http下载文件的方法详解
Jul 26 Python
pycharm设置鼠标悬停查看方法设置
Jul 29 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
Jan 20 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
Mar 13 Python
python为什么会环境变量设置不成功
Jun 23 Python
pycharm配置python 设置pip安装源为豆瓣源
Feb 05 Python
利用Python批量识别电子账单数据的方法
Feb 08 Python
python使用torch随机初始化参数
Mar 22 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 Ajax实现页面无刷新发表评论
2007/01/02 PHP
destoon整合UCenter图文教程
2014/06/21 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
理解JS绑定事件
2016/01/19 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
js 调用百度分享功能
2017/02/27 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
详解vue-cli@2.x项目迁移日志
2019/06/06 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
2019/11/06 Javascript
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
[40:13]Ti4 冒泡赛第二天 iG vs NEWBEE 2
2014/07/15 DOTA
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
Python实现的括号匹配判断功能示例
2018/08/25 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
python返回数组的索引实例
2019/11/28 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
CSS3毛玻璃效果(blur)有白边问题的解决方法
2016/11/15 HTML / CSS
分享一个页面平滑滚动小技巧(推荐)
2019/10/23 HTML / CSS
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
卫校毕业生自我鉴定
2013/10/31 职场文书
师范应届生教师求职信
2013/11/05 职场文书
毕业生个人投资创业计划书
2014/01/04 职场文书
有创意的广告词
2014/03/18 职场文书
运动会标语
2014/06/21 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书
道歉情书大全
2015/05/12 职场文书
golang 实用库gotable的具体使用
2021/07/01 Golang
SQL SERVER中的流程控制语句
2022/05/25 SQL Server