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获取GY-85九轴模块信息示例
Dec 05 Python
python中List的sort方法指南
Sep 01 Python
python执行外部程序的常用方法小结
Mar 21 Python
python BeautifulSoup设置页面编码的方法
Apr 03 Python
python制作爬虫并将抓取结果保存到excel中
Apr 06 Python
Python文件操作基本流程代码实例
Dec 11 Python
python将一个英文语句以单词为单位逆序排放的方法
Dec 20 Python
对Python中画图时候的线类型详解
Jul 07 Python
python上传时包含boundary时的解决方法
Apr 08 Python
PyTorch的torch.cat用法
Jun 28 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
Mar 04 Python
Python中使用Opencv开发停车位计数器功能
Apr 04 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/03/23 PHP
php实现学生管理系统
2020/03/21 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
微信开发之php表单微信中自动提交两次问题解决办法
2017/01/08 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
2018/01/29 PHP
php和nginx交互实例讲解
2019/09/24 PHP
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
jquery中toggle函数交替使用问题
2015/06/22 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
整理一下常见的IE错误
2016/11/18 Javascript
bootstrap日历插件datetimepicker使用方法
2016/12/14 Javascript
最常见和最有用的字符串相关的方法详解
2017/02/06 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
[12:21]VICI vs TNC (BO3)
2018/06/07 DOTA
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
简单了解python模块概念
2018/01/11 Python
Python 实现选择排序的算法步骤
2018/04/22 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
2018/05/16 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
python 3.7.0 下pillow安装方法
2018/08/27 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
python实现共轭梯度法
2019/07/03 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
德国网上宠物店:Zoobio
2018/05/23 全球购物
Omio英国:搜索并比较便宜的巴士、火车和飞机
2019/08/27 全球购物
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
2016/04/15 面试题
小学生美德少年事迹
2014/02/02 职场文书
2014年社区宣传工作总结
2014/12/02 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python