Skip to content

Instantly share code, notes, and snippets.

View zhuang-hao-ming's full-sized avatar

haoming zhuang-hao-ming

View GitHub Profile
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@zhuang-hao-ming
zhuang-hao-ming / main.md
Last active December 8, 2022 09:39
如何对python代码做性能分析

做实验的时候常常会遇到一个脚本跑的很慢的情况,这个时候我们常常会想方设法的去做一些优化,来让脚本跑的快一些。 但是优化带来了两个问题,一个是优化后的代码仍然是正确的吗,第二个问题是优化有效果吗?

第一个问题可以依靠编写合适的单元测试来解决, 但是究竟如何编写合适的单元测试仍然是一个很大的问题,这个问题我们留待以后在讨论。

第二个问题可以依靠性能分析来解决,性能分析就是测试代码的执行时间,很多时候我们经常会用如下的方式来做性能分析,但是这种方法一来麻烦,二来会把代码弄得很混乱。

from time import time

begin_tick = time()
@zhuang-hao-ming
zhuang-hao-ming / main.ipynb
Last active July 15, 2018 14:29
pandas备忘
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@zhuang-hao-ming
zhuang-hao-ming / main.py
Last active July 13, 2018 03:09
Markov Chain Monte Carlo方法的一个解释 贝叶斯推理
#
# 代码来自 http://twiecki.github.io/blog/2015/11/10/mcmc-sampling/
#
#
import numpy as np
import scipy as sp
import pandas as pd
import matplotlib.pyplot as plt
@zhuang-hao-ming
zhuang-hao-ming / main.py
Created July 13, 2018 03:08
Markov Chain Monte Carlo方法的一个解释 贝叶斯推理
import numpy as np
import scipy as sp
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import norm
def sampler(data, samples=4, mu_init=.5, proposal_width=.5, plot=False, mu_prior_mu=0, mu_prior_sd=1.):
@zhuang-hao-ming
zhuang-hao-ming / README.md
Last active July 11, 2018 03:23
使用matplotlib绘制平行坐标图

使用matplotlib绘制平行坐标图

思路

  1. 如果需要绘制n维数据, 生成一个1n-1列的图像, 同一行的子图如果共享y轴, 那么只有第一个子图的y tick label会显示出来, 在平行坐标图中,需要使得每一个子图都有自己的y tick label,所以需要把sharey设置为False

  2. 获得每一个维度数据的最大值,最小值,数据范围,用于tick label。归一化每一个维度的数据到[0,1],用于绘图。

  3. 将多维数据作为一个折线图在每一个子图上都绘制一遍。x = [0,1,2,...,n-1], y = [y1,y2,y3,...,yn]

@zhuang-hao-ming
zhuang-hao-ming / 20180529.md
Last active May 30, 2018 11:46
论文瞎读

论文瞎读 20180529

标题: Mining and visual exploration of closed contiguous sequential patterns in trajectories

提出了一种算法从轨迹数据库中挖掘“闭连续序列模式”。

连续序列模式, 是一个连续序列(轨迹经过的道路id序列),它在轨迹数据库中出现次数超过了一定的阈值。

闭连续序列模式指的是一个连续序列模式, 不存在另外一个连续序列模式包含它,并且置信度和它一样(不能是一个没有意义的子序列)。

@zhuang-hao-ming
zhuang-hao-ming / main.py
Created May 29, 2018 06:51
convert envi bin to tiff
# -*- coding: utf-8 -*-
name_base = 'odiac2013a_1km_excl_intl_{}{}'
meta = '''ENVI
samples = 43200
lines = 21600
data type = 4
bands = 1
@zhuang-hao-ming
zhuang-hao-ming / bin_to_tif.py
Created May 23, 2018 06:55
Use gdal to convert bin format to tiff format
# -*- coding: utf-8 -*-
import os
import subprocess
file_list = []
for f in os.listdir('.'):
if os.path.splitext(f)[1] == '.bin':
file_list.append(f)
@zhuang-hao-ming
zhuang-hao-ming / README.md
Last active April 2, 2018 11:26
kd-tree笔记

kd-tree

一般描述

什么是kd-tree

kd-tree是一种树数据结构, 用来存储多维数据。正如BST(二分搜索树)用值的大小关系来建树,左子节点的值 < 父节点 < 右子节点。 kd-tree也是用值的大小关系来建树,但是由于它处理的是多维数据, 以二维为例, 在根节点根据x值的大小关系来组织, 左子节点x值 < 父节点x值 < 右节点x值, 在下一层, 则换用y值的大小关系来组织, 左子节点y值 < 父节点y值 < 右节点y值,再下一层又换回x值,如此循环。

如何查找