YY用python做数据分析(1)

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

点击查看知乎网友的教程1

2

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  数组中下标234的元素
[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。 综上,下标为02的元素
[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}


复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享