工具篇:命令行里的数据科学工具
@(数据科学)[小树枝来了, 帮助, Markdown, 数据分析]
- 环境配置
- 安装anaconda
- 虚拟环境管理工具
注意:请将conda放在PATH里(一般来说,安装了anaconda之后,conda会默认放入path)
for windows user
C:\Users\Admin\Anaconda3\Scriptsfor linux or mac user
export PATH="/xxx/anaconda/bin:$PATH"C:\Users\Admin\Anaconda3\envs
创建新的虚拟环境:
- conda create -n env_name python=2.7
虚拟环境查看:
- conda env list
- conda env remove -n env_name
- conda create -n env_name python=3 numpy scipy
- activate env_name
- deactivate env_name
安装工具:
- conda list
- conda install numpy
- conda remove numpy
- conda update numpy
- conda search xxx
加速:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
conda config --show
删除channels:
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
Cmd,cd进入目标目录,然后git clone remote.github.url
git clone https://github.com/jvns/pandas-cookbook
新建代码库
- 在当前目录新建一个Git代码库
$ git init
- 新建一个目录,将其初始化为Git代码库
$ git init [project-name] - 下载一个项目和它的整个代码历史
$ git clone [url]
Git上传代码:
https://github.com/henry-li/hello-world.git
We recommend every repository include a README, LICENSE, and .gitignore.
…or create a new repository on the command line
echo "- hello-world" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/henry-li/hello-world.git
git push -u origin master
…or push an existing repository from the command line
git remote add origin https://github.com/henry-li/hello-world.git
git push -u origin master
…or import code from another repository
You can initialize this repository with code from a Subversion, Mercurial, or TFS project.
tips:
Markdown和In的转换: 先esc,M和Y切换,Ctrl+enter显示
正则表达式
正则表达式的常用缩写字符:
\d:0-9任何数字
\D:0-9之外的任何字符
\w:任何字母、数字、下划线(可以认为是匹配单词,word)
\W:除了任何字符、数字、下划线
\s:空格、制表符或者换行符(可以认为是空白,space)
\S:除了空白字符之外
[]:[0-5] or (0|1|2|3|4|5)
+:1个至多个字符
常用正则表达式:
### re模块的主要方法:
### search():找到符合的那个模式的信息
### findall():找到所有符合模式的信息
### sub():找到符合模式的信息并且替换
利用()分组
利用转义字符避免()分组带来的问题
利用 | 匹配多个分组
利用 ?实现选择匹配(有或没有)
利用 * 进行匹配(零次或多次)
利用 + 进行匹配(一次或多次)
利用 {} 匹配特定次数
正则表达式的findall()方法
# 自定义的字符模式
# [abc] a or b or c
# [] 无需转义
# [] ^取非 [^]
正则表达式的^和 $ 的使用
#?!号
# “不包含”字符
#.号通配符
# 只匹配一个字符,**匹配除换行**之外的所有字符
#比如用.*匹配所有字符,
# 添加注释
phoneRegex = re.compile(r'''(
\d{3} # 注释
(\s)
\d{4}
)''', re.VERBOSE)
phoneRegex.search('111 2222').group()
# email匹配
emailRegex = re.compile(r'''(
\w+ # 用户名
@ # @符号
[a-zA-Z]+ # 域名
(\.[a-zA-Z]{2,4}) # 域名后面的字符
)''', re.VERBOSE)
emailRegex.search('jack@sina.com').group()