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编写百度贴吧的简单爬虫
Apr 02 Python
python获取元素在数组中索引号的方法
Jul 15 Python
Python代码实现KNN算法
Dec 20 Python
详解python中的线程
Feb 10 Python
python中的变量如何开辟内存
Jun 26 Python
在python中实现将一张图片剪切成四份的方法
Dec 05 Python
Python简单获取二维数组行列数的方法示例
Dec 21 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
Mar 30 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
Apr 27 Python
Python新手如何理解循环加载模块
May 29 Python
一些关于python 装饰器的个人理解
Aug 31 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
Jan 27 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
上海牌131型七灯四波段四喇叭一级收音机
2021/03/02 无线电
php入门教程 精简版
2009/12/13 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
PHP与MYSQL中UTF8编码的中文排序实例
2014/10/21 PHP
php表单提交与$_POST实例分析
2015/01/26 PHP
php错误日志简单配置方法
2016/07/11 PHP
DOMAssitant最新版 DOMAssistant 2.5发布
2007/12/25 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
2015/07/17 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
[46:23]OG vs EG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Windows下python2.7.8安装图文教程
2016/05/26 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
Python爬虫框架scrapy实现的文件下载功能示例
2018/08/04 Python
pyshp创建shp点文件的方法
2018/12/31 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
采用怎样的方法保证数据的完整性
2013/12/02 面试题
《圆明园的毁灭》教学反思
2014/02/28 职场文书
护士工作失误检讨书
2014/09/14 职场文书
小学科学教学计划
2015/01/21 职场文书
三潭印月的导游词
2015/02/12 职场文书
担保贷款承诺书
2015/04/30 职场文书
2016年心理学教育培训学习心得体会
2016/01/12 职场文书
中秋节英文祝福语句(14句)
2019/09/11 职场文书
python实现层次聚类的方法
2021/11/01 Python