python 安装
mac OS自带python
各种安装
Anaconda ➕ Pycharm
Anaconda是一个基于Python的数据处理和科学计算平台,它已经内置了许多非常有用的第三方库,装上Anaconda,就相当于把Python、conda和一些如Numpy、Pandas、Scrip、Matplotlib等常用的库自动安装好了,使得安装比常规python安装要容易。如果没有安装Anaconda,而是安装了Python,那么还需要pip install一个一个安装 各种库,安装起来比较痛苦,还需要考虑兼容性。因而建议直接安装推荐直接使用Anaconda。
如果你已经安装了Python,也建议安装Anaconda,这样也是完全可以的,因为默认Python还是选取的 Anaconda 附带的 Python。不会影响原来已安装的Python。
从官网下载,mac OS分为命令行和图形两个版本 我选了图形 毕竟是小白
优秀的编译译器相当于编程语言的“word”,这里使用一个python编译器的“word”——Pycharm。原因是功能比较强大,调试可以设断点,最主要的是有很多人使用,因而初学者在跟着视频教程学习Python时也比较方便。(暂时不下Pycharm)
Jupyter notebook
Jupyter这个名字是它要服务的三种语言的缩写:Julia,Python和R,这个名字与“木星(jupiter)”谐音,此前被称为 IPython notebook,是一个交互式笔记本,支持运行 40 多种编程语言,在Jupyter Notebook 中,代码可以实时的生成图像,视频,LaTeX和JavaScript。
Jupyter Notebook 的本质是一个 Web应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等,用户可以通过电子邮件,Dropbox,GitHub 和 Jupyter Notebook Viewer,将 Jupyter Notebook 分享给其他人。
数据挖掘领域中最热门的比赛 Kaggle 里的资料都是Jupyter 格式,因为它可以让数据分析师集中精力向用户解释整个分析过程。
安装Jupyter的最简单方法是使用Anaconda ,其附带了Jupyter Notebook,可以在默认环境下使用Notebook
编程入门
1、数组
# 定义一个数组,用中括弧。数组里的元素可以不一样
li = [1,2,3,'abc', 4.5,[2,3,4],{1:'one'}]
整数、字符串、浮点数、数组、字节
# 获取长度
print(len(li))
print('')
# 根据索引读写 :数组名➕中括弧里放索引(从0开始计数)
>>> li[0] 打印数组li中下标为0的元素,也就是第一个元素。
or
>>> print(li[0])
1
>>> print(li[5]) 数组li中下标为5的元素,也就是第六个元素
[2, 3, 4]
>>> print(li[-1]) -1代表倒数第一个元素,以此类推
{1: 'one'}
# 切片
>>> li[2:5] 2<=下标<5 数组中下标2、3、4的元素
[3, 'abc', 4.5]
>>> li[:5] 省略左边,0<=下标<5,也就是下标为0 1 2 3 4的元素
[1, 2, 3, 'abc', 4.5]
>>> li[5:] 省略右边,5<=下标,直到最后一个元素
[[2, 3, 4], {1: 'one'}]
>>> li[:] 左右都省略,表示所有元素
等于
>>> li
[1, 2, 3, 'abc', 4.5, [2, 3, 4], {1: 'one'}]
>>> li[0:4:2] 0=<下标<4 而且 从0开始,每次加2,步长为2。 综上,下标为0、2的元素
[1, 3]
>>> li[3::2] 3=<下标,直到最后一个元素(6) 而且 从3开始每次加上2。综上 下标为3 5
['abc', [2, 3, 4]]
>>> li[-6:-1:1] 倒数第六个=<元素<倒数第一个 每次加1
[1, 2, 3, 4, 5]
步长为负数
>>> li= [0,1,2,3,4,5,6]
>>> li[::-1] 缺少左边默认为-1倒数第一个元素开始,缺少右边默认为到第一个元素。步长为-1,就是从后往前每次加1。 倒数1 2 3 4 5 6 7个元素 也就是把原数组倒过来
等于
>>> li[-1::-1]
[6, 5, 4, 3, 2, 1, 0]
>>> li[::-2] 倒数1 3 5 7个元素
[6, 4, 2, 0]
>>> li[-1:-4:-1] 倒数第1 2 3个元素 不包括倒数第四个元素
[6, 5, 4]
# 添加元素
>>> li=[1,2,3]
>>> li.append('a')
>>> print(li)
[1, 2, 3, 'a']
>>> li.append([4,5,6]) 把数组作为一个元素后加入
>>> print(li)
[1, 2, 3, 'a', [4, 5, 6]]
>>> li.extend([7,8,9]) 把数组拆开后,一个个加入
>>> print(li)
[1, 2, 3, 'a', [4, 5, 6], 7, 8, 9]
# 删除元素
>>> li.pop() 删除最后一个元素,并且返回值
9
>>> print(li)
[1, 2, 3, 'a', [4, 5, 6], 7, 8]
>>> del(li[0]) 删除数组里li中第一个元素
>>> print(li)
[2, 3, 'a', [4, 5, 6], 7, 8]
# 判断数组中是否有这个元素
>>> print(1 in li)
False
>>> print(7 in li)
True
>>> print(4 in li)
False
# 列表是否为空
>>> not li 数组li是空的
False 返回false说明不是空的
>>> print(len(li)) 打印数组li的长度,如果为0就代表该数组是空的
6
# 数组和字符串 修改字符串
>>> s = 'abcd' 定义一个字符串s
>>> li=list(s) 把字符串s拆成一个个单独的字符后,组成数组li(元素全是单个字符)
>>> li
['a', 'b', 'c', 'd']
>>> li[3]='T'
>>> print(li)
['a', 'b', 'c', 'T']
>>> s=''.join(li) 把元素全是单个字符的数组组成字符串
>>> s
'abcT'
# 遍历数组
>>> for i in li : print(i)
1
2
3
>>> for i in range(len(li)): print(li[i])
1
2
3
2、元组
# 定义一个元组,用小括弧。
# 和数组一样,但是只读不写
>>> tp=(1,2,3)
>>> tp
(1, 2, 3)
3、字典
# 初始化一个字典d,用花括弧,就是key value哈希表
>>> d={'a':1,2:'b'}
>>> d
{'a': 1, 2: 'b'}
# 获取长度
>>> len(d)
2
# 根据索引读写
>>> d['a'] 字典名➕中括弧里放key就行
1
>>> d['2']
Traceback (most recent call last):
File "<pyshell#56>", line 1, in <module>
d['2']
KeyError: '2'
>>> d[2]
'b'
>>> d.keys() 获取这个字典所有的key
dict_keys(['a', 2])
>>> d.items() 获取这个字典所有的items(key和value组合)
dict_items([('a', 1), (2, 'b')])
# 添加元素
>>> d['f']=5
>>> d
{'a': 1, 2: 'b', 'f': 5}
# 删除元素
>>> del(d['f'])
>>> d
{'a': 1, 2: 'b'}
# 判断key是否存在
>>> 'a' in d
True
# 判断字典是否为空
>>> not d d是空的
False 错误
# 遍历
方法一:按key遍历:先获取到key的集合,在用key作为索引访问每个元素
>>> for k in d.keys() : print(str(k)+':'+str(d[k]))
a:1
2:b
方法二:按每个item(key:value)遍历
>>> for k,v in d.items():print(str(k)+':'+str(v))
a:1
2:b
4、集合
# 初始化一个集合,set()里面放一个数组,若有重复数字会被自动消去
>>> s_a = set([1,1,2,3])
>>> print(s_a)
{1, 2, 3}
# 添加元素
>>> s_a.add(6) 添加一个数6到集合
>>> s_a
{1, 2, 3, 6}
>>> s_a.update([2,4,5,6]) 添加一个数组,若有重复会自动消去
>>> s_a
{1, 2, 3, 4, 5, 6}
# 删除元素
>>> s_a.remove(6)
>>> s_a
{1, 2, 3, 4, 5}
# 判断集合中某个元素是否存在
>>> 1 in s_a
True
>>> 6 in s_a
False
# 判断集合是否为空
>>> not s_a
False
# 遍历集合中每个元素
>>> s_a = set([2,3,5,7])
>>> for i in s_a: print(i)
2
3
5
7
# 集合的并
>>> s_a= set([1,2,3,4,5])
>>> s_b = set([4,5,6,7,8])
>>> s_a | s_b
or
>>> s_a.union(s_b)
{1, 2, 3, 4, 5, 6, 7, 8}
# 集合的交
>>> s_a & s_b
{4, 5}
# 集合的差
>>> s_a - s_b
{1, 2, 3}
# 集合的对称差 俩集合合并之后,删掉所有重复的
>>> s_a ^ s_b
or
>>> s_a.symmetric_difference(s_b)
{1, 2, 3, 6, 7, 8}
复制代码