
python
XH生信ML笔记
无计算机背景的生信入坑者一枚,生物狗一只,读博时初涉linux,以后陆续入坑python,r,Machine Learning,Deep Learning。主页主要是备份代码,如果能帮助到其他朋友就更好。
展开
-
matplotlib保存图片为pdf格式,文字以字体形式保存,可以illustrator编辑,而不是喵点格式。
用默认的 plt.savefig()保存的图片,图利和label都是以瞄点保存的,而不是以文字格式。这样在矢量图编辑中想要调整文字大小和字体时都不方便。使用mpl可以设置pdf图片文字以字体形式保存:# matplot 输出的图片为illustrator可编辑的字体import matplotlib as mplmpl.rcParams['pdf.fonttype'] = 42mpl.rcParams['ps.fonttype'] = 42#保存pdfplt.savefig("multi-ti原创 2021-09-01 10:15:15 · 4300 阅读 · 0 评论 -
python如何把文字类型转换成时间类型并求间隔日期
最近处理一批数据,把excel导入pandas中后,发现默认导入为object,需要转化成日期后计算时间用药时间和发病时间的间隔。使用time,将其转化为时间格式:# date是字符串格式,换算成time64[d]格式import timecopies.date = copies.date.values.astype('datetime64[D]')计算连个时间点的间隔,直接用“➖”即可:# 计算采样时为用药和发病的第几天,注意用values.astype("datetime64[D]")转原创 2021-09-01 09:55:37 · 763 阅读 · 0 评论 -
如何构建一个一个渐变颜色条图例(color bar)?
最近画图时采用默认的渐变色感觉很丑,就想着自己做一个,用scatterplot 做图,默认渐变图例为圆点# 导入模块import seaborn as snsimport matplotlib.pyplot as plttips = sns.load_dataset("tips") # 导入数据ax = sns.scatterplot(x="total_bill", y="tip", hue="size", palette='RdBu_r', data=tips) # 采用seaborn 中的原创 2021-03-09 14:18:26 · 3469 阅读 · 1 评论 -
matplotlib 利用plt.subplot() 函数画多个子图
最近写文章要用到子图,目标是一个大图中包含4个子图。画图可以用matplotlib,也可以用集成式的软件包seaborn。画子图最简单的方法就是用plt.subplot()函数。plt.subplt(行,列,第几个图)函数定义要画那张子图,其中行和列定义要画几张图,如plt.subplot(2,3,1)就是定义大图含有2行3列子图,就是6张图,第三位的1表示开始画第一张图,因此后面的图一次就是plt.subplot(2,3,2),plt.subplot(2,3,3),plt.subplot(2,3,4),原创 2020-11-19 10:15:36 · 3528 阅读 · 1 评论 -
python 时间间隔 timedelta64[ns] 转化成整数格式
首先把时间格式的naT转换成0 days查询数据类型查询数据框data_onset中onset_days 列第13~16行 数据:>>> data_onset.onset_days[13:16]13 13 days14 NaT15 NaTName: onset_days, dtype: timedelta64[ns]Name: onset_days, dtype: timedelta64[ns]格式为timedelta64[ns]首先将缺失原创 2020-11-12 20:37:29 · 14374 阅读 · 3 评论 -
如何把datetime64[ns]转换成datetime64[D]格式
今天碰到一个计算两个时间间隔的问题,发现excel导入的时间格式均为datetime64[ns],毫秒格式。由于只需要天数,想转化为datetime64[D] 格式。>>>data_total.DURG_DATE查看时间是datetime64[ns]直接修改格式>>> data_total.DURG_DATE.astype("datetime64[D]")直接转换依然不行 原来,pandas series 默认把时间转换为datetime64[ns]格原创 2020-10-15 13:38:14 · 11690 阅读 · 6 评论 -
如何彻底删除mac os上自己安装的python
本人不小心安装了3.9,使用numpy出现了“RankWarning: Polyfit may be poorly conditioned”,需要彻底删除python 3.9 的各种包,链接和文件。1. 删除3.9 的框架@macbook ~ $ which python # 默认python版本,mac自带/usr/bin/python@macbook ~ $ which python3 #查询pyton3 位置/Library/Frameworks/Python.framework/Versi原创 2020-10-14 22:29:49 · 13041 阅读 · 8 评论 -
seaborn relplot 时出现 AttributeError: ‘int‘ object has no attribute ‘view‘ 错误原因
seaborn 是python中一个封装的包,可以很方便的做出多种图,而不需要想matplotlib中设置各种参数。我的数据结构如下:>>> data_1st.head()其中sample_time 是分类变量,采样的天数。尝试用sns.relplot 做出点图,不同的sample_type 用不同形状的点,不同sample_time的样本用不同颜色>>> data_str=data_1st.copy()>>> sns.relplot(x=原创 2020-09-22 17:17:37 · 4265 阅读 · 0 评论 -
用pandas将excel中一个工作薄中的多个工作表(sheet)拆分成单个文件并保存
在用pandas读取excel文件时,有时候遇到一个excel文件包含了好几个样本的sheet,而这些sheet需要单独保存。sheet少的话可以打开excel新建一个新的excel文件然后复制sheet过去单独保存,但如果有几十个就比较麻烦。可以用pandas来3行代码搞定。import pandas as pd# 读取excel 文件中所有sheettest_2=pd.read_excel("folder/yourfile.xlsx",sheet_name=None)这种读取是以字典的形式读取原创 2020-09-21 14:19:53 · 9942 阅读 · 6 评论 -
如何使用git上传自己的代码到github
在做项目和发表论文时,最后一步是把代码上传到github供社区参考。使用git工具可以方便的把整个文件夹的代码上传到自己github代码仓库中。你首先需要安装git,默认安装即可,上传代码可分为3步:1. 初始化自己文件夹为代码仓库进入自己要上传的文件夹,用点击右键,“git bash here”,打开git 命令行终端。或者再git终端中使用cd github_code进入文件夹。# ...原创 2020-05-07 17:11:17 · 334 阅读 · 0 评论 -
如何利用sklearn中roc_curve 三行代码画ROC曲线
ROC曲线是评估模型效果的重要工具,其X轴为假阳性率,Y轴为真阳性率(也叫召回率recall),其意义在于,在真阳性率时,模型同时判错阳性的样本比例,因此曲线越陡,越表示模型效果好。ROC曲线下AUC面积越大表示模型效果越好,我们可以利用sklearn 中的roc_curve函数方便的画ROC曲线。#导入要用到的库# load the packageimport numpy as npim...原创 2020-04-10 15:56:49 · 4480 阅读 · 3 评论 -
不使用循环,如何对numpy array或者list中每个元素进行操作
在使用list或者numpy array时,经常需要对里面的每一个元素进行操作。当然使用for循环是最简单的,但for循环速度非常慢。而numpy array内置科学计算模块,速度大大高于for循环。如我有个list 需要对里面的元素切片...原创 2020-03-28 21:43:29 · 4017 阅读 · 0 评论 -
numpy.savetxt保存array时TypeError: must be real number, not str 问题
在用numpy.savetxt() 保存一个字符串array时出现了TypeError: must be real number, not str的报错。在百度搜索了一下,全是乱七八糟的解释,没看到靠谱的。以前在国外用google,任何报错基本很快找到解决办法,百度真是无语了。没办法,用bing搜索了下,在 stack overflow中找到了解决办法:import numpy as np#...原创 2020-03-19 11:12:11 · 5131 阅读 · 1 评论 -
如何设置在交叉验证中同时设置训练集,验证集,测试集三个数据集并实现循环
传统的交叉验证在做机器学习时,交叉验证时验证模型稳定性的重要手段。大部分交叉验证仅分为训练集和测试集,每次循环一次,直至覆盖所有数据。这个可以采用sklern中cross_validiation_score 直接运行,如:该方法的缺点之一是只能拆分成训练集和测试集,当需要验证集来调参数时,无验证集可用。先划分测试集,但不循环实现训练集,测试集,和验证集的一个方法时在训练数据前分割数据,取...原创 2020-03-07 06:28:50 · 2185 阅读 · 0 评论 -
BioPython的安装和使用
BioPython 是一个用来处理序列和生物信息的python包,里面包含了很多的工具,可以用来直接读取fasta格式。安装可以通过两种方式,pip方式:1. pip 方式pip3 install biopython打开python终端,>>> import Bio>>> from Bio import SeqIO报错:------------...原创 2020-01-21 06:04:18 · 5801 阅读 · 0 评论 -
plt.savefig()保存图片缺失legend或者text的解决办法
在jupyter notebook中国使用matplotlib.pyplt 画图后,在最后使用plt.text()添加文本后使用plt.savefig()保存图片,发现x轴的文本无法出现。代码:fig,axes = plt.subplots(4,2,figsize=(15,20),subplot_kw = {"xticks":[],"yticks":[]})......# 画图的代码p...原创 2020-01-05 03:39:42 · 6083 阅读 · 0 评论