import numpy as np
arr = [1,2,3,4,5,6]
#求均值
arr_mean = np.mean(arr)
#求方差
arr_var = np.var(arr)
#求标准差
arr_std = np.std(arr,ddof=1)
print("平均值为:%f" % arr_mean)
print("方差为:%f" % arr_var)
print("标准差为:%f" % arr_std)
from numpy import array
from numpy import cov
x = array([1,2,3,4,5,6,7,8,9])
print(x)
y = array([9,8,7,6,5,4,3,2,1])
print(y)
Sigma = cov(x,y)[0,1]
print(Sigma)
# [1 2 3 4 5 6 7 8 9]
# [9 8 7 6 5 4 3 2 1]
# -7.5
from scipy import stats
# two sample rank test
def sig_spearman_corr(x,y):
p=stats.spearmanr(x,y)[0]
return p
def sig_pearson_corr(x,y):
p=stats.pearsonr(x,y)[0]
return p
这里也总结了一些常见的写法,可以参考一下:
Symbol | Script |
---|---|
\(\alpha\) | \alpha |
\(\beta\) | \beta |
\(\theta\) | \theta |
\(\pi\) | \pi |
Symbol | Script |
---|---|
\(k_{n+1}\) | k_{n+1} |
\(n^2\) | n^2 |
\(k_n^2\) | k_n^2 |
\(k_{n^2}\) | k_{n^2} |
Symbol | Script |
---|---|
\(\frac{n!}{k!(n-k)!}\) | \frac{n!}{k!(n-k)!} |
\(\binom{n}{k}\) | \binom{n}{k} |
\(\frac{\frac{x}{1}}{x - y}\) | \frac{\frac{x}{1}}{x - y} |
\(^3/_7\) | ^3/_7 |
Symbol | Script |
---|---|
\(\sqrt{k}\) | \sqrt{k} |
\(\sum_{\substack{0<i<m,0<j<n}} P(i, j)\) | \sum_{\substack{0<i<m,0<j<n}} P(i, j) |
Symbol | Script |
---|---|
\(\sum_{i=1}^{10} t_i\) | \sum_{i=1}^{10} t_i |
\(\sqrt[n]{k}\) | \sqrt[n]{k} |
\(\sum_{i=1}^{m}\sum_{j=1}^{m}\) | \sum_{i=1}^{m}\sum_{j=1}^{m} |
Symbol | Script |
---|---|
\(\overline{abc}\) | \overline{abc} |
\(\overline{abc} \\ a_i\) | \overline{abc} \\\ a_i ,两个斜杠\\ 表示分行 |
\(\cdot\),\(\cdot\cdot\cdot\) | \cdot ,\cdot\cdot\cdot ,位于中心的点 |
\(\bigoplus\) | \bigoplus |
\(\leftarrow\), \(\rightarrow\) | \leftarrow , \rightarrow |
\(\longleftarrow\), \(\longrightarrow\) | \longleftarrow , \longrightarrow ,长的版本 |
\(\wedge\) | \wedge ,可表示并且,逻辑字符 |
\(w^{[l]}=\begin{bmatrix}1.5 & 0 \\0 & 1.5\end{bmatrix}\) | w^{[l]}=\begin{bmatrix}1.5 & 0\\0 & 1.5\end{bmatrix} ,矩阵表示 |
\(w^{[l]}=\begin{matrix}1.5 & 0 \\0 & 1.5\end{matrix}\) | w^{[l]}=\begin{matrix}1.5 & 0\\0 & 1.5\end{matrix} ,矩阵表示 |
\(w^{[l]}=\begin{pmatrix}1.5 & 0 \\0 & 1.5\end{pmatrix}\) | w^{[l]}=\begin{pmatrix}1.5 & 0\\0 & 1.5\end{pmatrix} ,矩阵表示 |
\(\mid x \mid\) | \mid x \mid |
\(\int_{-\infty}^{\infty}\) | \int_{-\infty}^{\infty} |
推荐2个online版本的venn工具,画出来的图是很漂亮的:
http://bioinfogp.cnb.csic.es/tools/venny/ 这是上面的工具的2.0版本,可以用这个;
定义:将数据缩放到特定的区间中,以使得数值之间具有可比较性。
目标:
为什么需要归一化:
哪些模型需要归一化:
哪些模型不需要归一化:
公式:\(X_{norm} = \frac{X - X_{min}}{X_{max}-X_{min}}\)
结果:将原始数据经过线性变换,把数值缩放到[0,1]之间,不会改变数据的分布。
公式:\(X_{norm} = \frac{X - X_{mean}}{X_{max}-X_{min}}\)
结果:将原始数据经过线性变换,把数值缩放到[-1,1]之间
公式:\(X_{norm} = \frac{X - X_{mean}}{\sigma}\),其中\(\sigma\)是标准差。
结果:转换后的数值,其平均值为0,方差为1,即服从标准正太分布,这个转换不会改变数据的分布。
公式:\(X_{norm} = \frac{X}{\|X\|}\),其中\(\|X\|\)是这个数据向量的欧式长度(Euclidean length)。
结果:转换后的数值在[0,1]之间。
公式:\(X_{norm} = \frac{log{X}}{log{X_{max}}}\)
结果:转换后的数值在[0,1]之间。
公式:\(X_{norm} = atan{X}*\frac{2}{\pi}\)
结果:如果X都大于0,则区间映射到[0,1],小于0的数据映射到[-1,0]之间。
原理:
结果:使得不同的数据集具有相同的分布,容易比较。(这个方法在microarray数据中使用得很多,原先叫quantile standardization,后来才叫做quantile normalization。wiki给出了一个例子,说的是在不同的样本中,如果将基因的表达量归一化到同一水平。)。下面是不同样本中前后表达量分布的例子:
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('ticks')
np.random.random(42)
X = np.random.exponential(size=1000)
X_norm_min_max = (X - X.min()) / (X.max() - X.min())
X_norm_mean_max = (X - X.mean()) / (X.max() - X.min())
X_norm_zscore = (X - X.mean()) / X.std()
X_norm_unit = X / np.linalg.norm(X)
fig, ax = plt.subplots(3, 2, figsize=(16,18), sharex=False, sharey=False)
sns.distplot(X, ax=ax[0,0])
ax[0,0].set_title('Raw')
sns.distplot(X_norm_min_max, ax=ax[0,1])
ax[0,1].set_title('min-max norm')
sns.distplot(X_norm_mean_max, ax=ax[1,0])
ax[1,0].set_title('mean-max norm')
sns.distplot(X_norm_zscore, ax=ax[1,1])
ax[1,1].set_title('z-score norm')
sns.distplot(X_norm_unit, ax=ax[2,0])
ax[2,0].set_title('unit length norm')
sns.violinplot
# violin plot
def df_sns_violinplot(df,col_str,savefn,orient='v',class_col="",order=None):
assert savefn.endswith("png"), "[savefn error] should be .png: %s"%(savefn)
savefn=savefn.replace('png','violin.png')
print "[df_sns_violinplot]"
col_str = None if col_str == "" else col_str
class_col= None if class_col == "" else class_col
print " - col_str: %s"%(col_str)
print " - class_col: %s"%(class_col)
print df.head(2)
print df.dtypes
#fig,ax=plt.subplots(nrows=1,ncols=1,figsize=(8,8)) # plot multiple violin in one fig
if class_col:
s=sns.violinplot(y=col_str,x=class_col,data=df,order=order) # ax=ax[0,1,...]
else:
print "plot col_str: ",col_str
#s=sns.violinplot(x='p_val_poisson',data=df) # ax=ax[0,1,...]
s=sns.violinplot(df[col_str],order=order) # ax=ax[0,1,...]
title_str=savefn.split("/")[-1]+':'+str(df.shape[0])
fig=s.get_figure()
fig.suptitle(title_str)
fig.savefig(savefn)
print " - savefig: %s"%(savefn)
plt.close()
return savefn
在本地使用tmux打开了会话,在会话中登陆了服务器,然后打开了服务器上的tmux会话。如果本地和服务器上对于快捷键的设置是一样的,那么输入快捷键时只能被外部的会话捕捉到。可以通过对快捷键字母输入两次的方式将命令传入到内层的会话,比如:
Ctl + b + <
: 是在外部跳到左边的panelCtl + b + b + <
: 是在内部跳到左边的panel。(字母输入两次)config
文件有时候想修改config设置,比如不同的快捷键等,可以按照如下步骤:
Ctl+b
作为前置键。: source-file ~/.tmux.conf
或者tmux source ~/.tmux.conf
n,p
选择前后tab的功能.前置键+r
直接reload修改后的tmux配置