• Home
  • About
    • Kira's Blog Site

      Doctor X's blog site

    • Learn More
    • Email
    • Twitter
    • Github
    • Steam
    • Weibo
  • Posts
    • All Posts
    • All Tags
  • Data Analysis
  • Climate Projects
  • Videos
  • Life
  • Notes
  • Algorithm
  • Papers

Application of some algorithm or usefull command

19 Feb 2020

Jupyter

快捷键:

批量注释

  • 在Jupyter Notebook中批量注释多行,在前面加上#

    • 全选
    • ctrl + /
  • 删除以上注释:

    • 同上

缩进

  • 缩进ctrl+]
  • 解除 缩进ctrl+[

排序

  • 比如现在有两个序列serial和tstamp是一一对应的,我们的目的是对两者根据其中一个序列进行排序
  • 例如根据对时间戳tstamp按照时间序列serial的大小进行排序:
r_serial	= sorted(serial) # from the minimun to maximun
r_tstamp	= [x for _, x in sorted(zip(serial,tstamp), key=lambda pair: pair[0])]

这个例子的目的是活用lambda

查找

  • 比如在一个序列中我们需要查找一个数或者字符的位置
  • 有两种方法:
  • 第一种就是采用index
  • 仅仅针对list的sequence
>>> a = [1,2,3,4,5,6,7]
>>> a.index(3)
2
  • 第二种就是我早年不懂事,走了很多弯路,采用的是
>>> import numpy as np
>>> a = np.array([1,2,3,4,5,6,7])
>>> np.argmin(abs(a - 3))
2
>>> np.where(a==3)
(array([2]),)
>>> a = np.array([[1,2,3,4,5,6,7],[7,6,5,4,3,2,1]])
>>> np.where(a==3)
(array([0, 1]), array([2, 4]))

统计个数

主要有四种方法:根据come&整理的结果:

  1. 利用字典dict来完成统计
a = [1, 2, 3, 1, 1, 2]
dict = {}
for key in a:
    dict[key] = dict.get(key, 0) + 1
print dict

输出结果:

>>>{1: 3, 2: 2, 3: 1}
  1. 利用Python的collection包下Counter的类
from collections import Counter
a = [1, 2, 3, 1, 1, 2]
result = Counter(a)
print result

输出结果:

>>>{1: 3, 2: 2, 3: 1}
  1. Python的pandas包下的value_counts方法
import pandas as pd
a = [1, 2, 3, 1, 1, 2]
result = pd.value_counts(a)
print result

输出结果:

>>>1    3
   2    2
   3    1

注:利用pandas下的value_counts(),不仅可以统计list中各个元素出现的个数,还可对矩阵中的元素进行进行统计。

import pandas as pd
a = pd.DataFrame([[1,2,3],
                  [3,1,3],
                  [1,2,1]])
result = a.apply(pd.value_counts)
print result

输出结果:

$ 2.0  1.0  1.0  # 表示元素1在第一列出现2次,在第二列出现1次,在第三列出现1次
$ NaN  2.0  NaN  # 表示元素2在第一列出现0次,在第二列出现2次,在第三列出现0次
$ 1.0  NaN  2.0  # 表示元素3在第一列出现1次,在第二列出现0次,在第三列出现2次
  1. 如果是列表list
>>> a = [1,2,3,4,5,6,7]
>>> a.count(1)
1
# 仅仅针对列表
>>> import numpy as np
>>> a = np.array([1,2,3,4,5,6,7])
>>> a.count(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'count'

查看数据类型

有时候在编程的过程中会因为一些小错误花费大量时间,尤其是一些函数支持int,float,double,因此需要判断计算后会输出特定的类型

type(var).__name__

保存图片超过固定边界时:


extent = ax4.get_window_extent().transformed(fig.dpi_scale_trans.inverted())
fig.savefig(path_data +'/' + title +'.pdf',fomat='pdf',bbox_inches=extent.expanded(2.2, 1.4))

YOU CAN CHANGE THE FORMAT pdf TO png et al.

数据内部同样的数字个数:

sorted(X, key=X.__getitem__,reverse=True)

LOGIN WITHOUT INTERP

ssh -o ServerAliveInterval=30 username@you.server.ip.address -L127.0.0.1:pre-setting-port:127.0.0.1:8889

INSTALL STEAM ON FEDORA

sudo dnf install fedora-workstation-repositories
sudo dnf install -y steam --enablerepo=rpmfusion-nonfree-steam

INSTALL cdo IN MAC

sudo port install cdo

reference:cdo



Like Tweet +1