之前忙着提交论文盲审与两地求职,很累。想抽出大片时间时,总是被各种外界因素干扰,我需要学习利用碎片化时间,毕竟马上进入职场,很难再抽出大片碎片化时间。
如何静下心来抽取碎片化时间去学习?关掉微信,泡一杯水,上个厕所,开启电脑;
跟自己说,当下最重要的是学习xx,xx很重要,其他不重要。
Anaconda
anacondawhat与whyanaconda是python包的管理器与不同环境管理器
为什么使用anaconda?anaconda可以安装并管理python的第三方包,进行数据分析。
可以为不同的项目建立不同的运行环境。比如python2、python3、R等等。
how去哪里下载anaconda:
把anaconda的安装路径写入环境变量
anaconda包的查看、安装、更新、卸载(在anaconda prompt输入)查看已安装的包:conda list
安装包:anaconda prompt输入:conda install 包名安装numpy:conda install numpy
安装pandas:conda install pandas
安装matplotlib:同上
安装keras:同上
安装sklearn:conda install scikit-learn(这里不能用简称)
安装tensorflow:conda install tensorflow
安装Statsmodels :conda install Statsmodels
在jupyter里输入:!pip install 包名
更新包:anaconda prompt输入:conda upgrade 包名
在jupyter里输入:!pip install keras --upgrade
环境的判断、添加、激活、删除(目前常用python3.5版本)环境的判断:输入conda info --envs,电脑会显示已安装的环境
在python3.5里添加环境名py3:conda create --py3 python=3.5
激活环境py3:activate py3(这里命名环境名py3)
删除环境:conda remove -n py3 --all
在环境py3里安装包先激活环境py3:activate py3
再安装包:conda install 包名
添加镜像(安装清华源)在anaconda prompt里输入: conda config --add channels
anaconda 复制github内容先安装git软件,再在环境变量导入git core与git bin的地址
然后在anaconda prompt输入:git clone +网址
常见问题有时候没法用conda安装包,用pip安装包却可以
jupyter
jupyter notebookwhat与why什么是jupyter notebook是一个集代码、文件、图片的集合web应用。
为什么使用jupyter notebook(对比普通的 Python shell 或者在IDE(集成开发环境))jupyter可以写markdown做备注,
界面清晰且简洁,
方便导出成多种格式,比如.py,.html,.markdown,.pdf。
可以安装浏览目录
how在anaconda prompt里:安装jupyter:输入conda install jupyter notebook
启动jupyter:输入jupyter notebook
安装浏览目录:pip install jupyter_contrib_nbextension
在Anaconda终端安装代码自动补全包:conda install pyreadline(为了在写代码时用tab键补齐代码)
jupyter notebook界面里新建文件夹、创建文件、选择环境文件或文件夹复制(duplicate)、改名(rename)、移动(move)、删除(delete)、下载(download)上传文件或图片等:点uphold
设置浏览目录:在anaconda prompt里安装好后,
在jupyter界面,找到Nbextension并点击,然后在搜索栏输入toc,在Table of Contents(2)前打勾
新建文件,并点击图片右上角的toc,图片左边会出现markdown写成的目录
目录一般在左手边,可以移动到右手边写代码时的快捷键代码补齐键:tab
复制c粘贴v撤销z反撤销y:ctrl+c/v/z/y
删除一行cell:ctrl+d,删除整个cell:两个d或一个X
向上插入一个cell:a,向下插入一个cell:b
cell转为markdown:选中cell,按m
运行cell并跳到下一个cell:shift+enter
计时器:%%timeit
显示可视化:%matplotlib inline
多研究jupyter的功能区:rename文件名
cell run的不同
file功能区:下载转为各自格式
研究view:比如幻灯片,点击“View”(视图)>“Cell Toolbar”(单元格工具栏)>“Slideshow”(幻灯片)
python
python基础为什么学习python对比excel,什么时候用python面对处理大数据的时候,优先选择python;
面对重复操作,利用python进行自动化;
现实数据并不总是放在excel里,可能在数据库、txt里,这时候没法用excel。
如何高效学习python大部分情况下,没法腾出大片时间学习,需要利用碎片化学习,利用某些app把手机与电脑连接起来,比如有道云笔记、印象笔记。
多敲代码
一个方向上,持续投入并系统学习。
学会用搜索引擎:
调用模块与包import调用给定的包与run调用自己编写的函数:import 某包 as 通用简称 import 包名
import 包名称 as 通用别名
from 包 import 函数名pandas:import pandas as pd
numpy:mport numpy as np
画图包matplotlib:import matplotlib.pyplot as plt
统计包statsmodels:import statsmodels as sm
算法库和数学工具包scipy:import scipy.stats as st调用聚类分析包:import scipy.cluster.hierarchy as sch
读取图片包opencv:import cv2
keras
from keras.models import Sequential
from keras.layers import Dense, Activationrun:% run initpython.py(initpython.py是自编的函数(自定义函数),有多个函数)
快速学习python的几个关键点代码注释:一行注释用#表示
多行注释用""" """表示
运算符分类:算术运算符(4+3)与逻辑运算符(4+3)
算术运算符: +,-,*,/(商),//(整除)
指数:**
余数:%
逻辑运算符 ,>=,
==,!= 等于与不等于(字符串判断也行)
and,or,not x
5中数据类型=变量值变量名=变量值数字:整数int与浮点float
字符串:str
a=10 #int整数
1.1 #float浮点
“aaa”#string字符串
float(x)#转为浮点布尔:True False
None空值
容器:存放多个数据容器的4个操作:加,减(delete),修改,查询(search)
列表list与元组tuple
区别:是否变更,前者可变更,后者不可 list1=["a",1,6]
list2=[1,2]
#list运算只有加法与乘法
list1+list2
list1*2#重复两遍集合:没有重复的容器 a={"a1","a2","a3","a1"}
print(a)
结果:{"a1","a2","a3"}集合三种操作增加a.update(["a4"])
删除a.discard("a3")
查找(布尔判断): b="a3" in a
print(b)
结果:True或者False
字典dic:key默认无序 #dic结构,dic={key1:value1,key2:value2}
dic={“name":"ann","code":4,"c":[1,"a"]}
dic.keys()#求字典的keys
dic.values()#求字典的values条件判断,for循环,def自定义函数函数条件判断: if a判断:
print("cc0")
elif b判断:
print("cc1")
else:
print("cc2")
for循环:自动化(while循环并不常见) p_human=0
for i in human_files_short:
if face_detector(i):
p_human+=1
print("humanface_percent:",p_human/100)列表循环 a=[1,2,3]
for i in a:
print(i)
字典循环 把股票代码换成大写
dic={“alibaba":"baba","腾讯":"HK:00700"}
for key,value in dic:
value_upper=value.upper()
dict{key}=value_upperbreak:表示退出循环,目的是当查找出某个时,退出循环
continue:在循环中,跳出某个查询(不显示某个查询)
def自定义函数:什么是函数:它是黑盒子,类似神经网络的黑箱;把重复的工作用多行代表表示(自己编写),方便调用
如果函数参数是字符串, 元祖, 和数字这3种不可更改的对象,参数传递时,相当于传递的是复制出来的数据,对于数据本身没有影响
如果参数传入的数据类型是可变的类型,当函数内部修改该数据时,原始的数据也改变了。
数据结构(吴军曾经说过很重要)双向链表:队列与栈队列:类似排队吃饭,入队就是拿尾票,出队就是直接上桌删除队列首部队列两个操作队列的入队:队列尾部添加a.append("006")
队列的出队:队列首部删除a.popleft()即把最前面的删除
栈:类似木桶加水与取水,都是从最上面处理栈的两部分:入栈:首部添加a.appendleft("a")
出栈;首部减少a.pop()
排序字典OrderedDict
key默认无序,但是需要有序的字典,所以需要导入collections的OrderedDict from collections import OrferedDict
dict2 = OrderedDict() # 有序字典
dict2['apple'] = 2
dict2['banana'] = 1
dict2['orange'] = 3
结果:就是书写的顺序计数器Counter
from collections import Counter
a.most_common(3)#出现次数最多的三个词