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去掉字符串中空格的方法
Mar 11 Python
Python中使用HTMLParser解析html实例
Feb 08 Python
Python3.2模拟实现webqq登录
Feb 15 Python
python实现批量按比例缩放图片效果
Mar 30 Python
Python中defaultdict与lambda表达式用法实例小结
Apr 09 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
Apr 28 Python
Python实现基于PIL和tesseract的验证码识别功能示例
Jul 11 Python
python3实现字符串操作的实例代码
Apr 16 Python
Dlib+OpenCV深度学习人脸识别的方法示例
May 14 Python
python opencv实现gif图片分解的示例代码
Dec 13 Python
Sentry错误日志监控使用方法解析
Nov 12 Python
python爬取微博评论的实例讲解
Jan 15 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与javascript的两种交互方式
2006/10/09 PHP
DOM精简教程
2006/10/03 Javascript
xtree.js 代码
2007/03/13 Javascript
jQuery each()小议
2010/03/18 Javascript
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
ES6中Iterator与for..of..遍历用法分析
2017/03/31 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
详解如何构建Promise队列实现异步函数顺序执行
2018/10/23 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
python实现颜色空间转换程序(Tkinter)
2015/12/31 Python
Python正则表达式知识汇总
2017/09/22 Python
基于python中的TCP及UDP(详解)
2017/11/06 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
python批量复制图片到另一个文件夹
2018/09/17 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
2019/10/04 Python
python实现小世界网络生成
2019/11/21 Python
python使用Geany编辑器配置方法
2020/02/21 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
公司培训心得体会
2014/01/03 职场文书
员工试用期自我评价
2014/09/18 职场文书
试用期自我评价范文
2015/03/10 职场文书
推普标语口号大全
2015/12/26 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
2016年第二十五次全国助残日活动总结
2016/04/01 职场文书
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js
Python标准库之typing的用法(类型标注)
2021/06/02 Python
Django REST framework 限流功能的使用
2021/06/24 Python
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL