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 17 Python
Python中pip安装非PyPI官网第三方库的方法
Jun 02 Python
详解Django通用视图中的函数包装
Jul 21 Python
利用numpy+matplotlib绘图的基本操作教程
May 03 Python
浅谈Python在pycharm中的调试(debug)
Nov 29 Python
利用python计算时间差(返回天数)
Sep 07 Python
python使用Matplotlib改变坐标轴的默认位置
Oct 18 Python
Python 内置函数globals()和locals()对比详解
Dec 23 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
Feb 27 Python
Tensorflow tf.tile()的用法实例分析
May 22 Python
Python定时任务APScheduler安装及使用解析
Aug 07 Python
使用Python开发贪吃蛇游戏 SnakeGame
Apr 30 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
Session的工作方式
2006/10/09 PHP
PHP 事件机制(2)
2011/03/23 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
PHP经典面试题集锦
2015/03/19 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
2012/12/13 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
jQuery的css() 方法使用指南
2015/05/03 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
2017/03/30 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
element-ui 中的table的列隐藏问题解决
2018/08/24 Javascript
写gulp遇到的ES6问题详解
2018/12/03 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
2018/12/11 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
2020/10/29 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
Python中的localtime()方法使用详解
2015/05/22 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
python计算两个数的百分比方法
2018/06/29 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
10条PHP编程习惯
2014/05/26 面试题
共产党员岗位承诺书
2014/05/29 职场文书
离婚律师函范本
2015/05/27 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书
MySQL慢查询的坑
2021/04/28 MySQL
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android
一行Python命令实现批量加水印
2022/04/07 Python