电脑硬盘有点问题,买了一个硬盘重新安装。所以这些软件都需要重新安装,学习学弟写博客。因为每次都会凭借记忆来重新安装,以后会忘记。所以写博客加油,这个习惯坚持下去。
Python中单行注释用#,多行注释用”“”
安装顺序:首先安装Anaconda,再安装pycharm community 5.0.1
pycharm的设置按照
http://jingyan.baidu.com/article/76a7e409de785efc3a6e1557.html来设置。显示行号的那个很绝,双击shift。
一、使用conda来管理多版本的Python(我的电脑里面装的是Python3.6和Python2.7)(链接如下https://conda.io/docs/py2or3.html#check-python-versions)2、在Python2.7的版本上安装Python 3.6
conda create -n py36 python=3.6 anaconda
这个时候你会发现在Anaconda的envs文件夹下多了一个py36的文件夹
如果直接在安装Python2.7的基础上下载Python3.6的安装包安装的话会引起冲突。所以需要用上面的命令安装。
1、查看电脑里面安装了什么版本的Python(cmd命令行里面输入,最好是右击cmd以管理员的身份运行)
conda info –envs
2、看一下电脑默认的Python是哪个.
python –version
3、启动另外一个版本的Python
activate py36
4、这个时候再查看当前运行的Python的版本
Python –version
二、Python中的IDE
1、Jupyter notebook(在线,可支持标记)
这个时候创建了一个本地的服务器:localhost:8888
2、ipython
3、pycharm community
4、spyder适合熟悉MATLAB的人学习。
打开pycharm,设置编译器的环境,在file–>setting–>interpreter里面。
三、Python3.x的新特性
1、print()是函数,不是一个语句。
2、Python3对文本和二进制数据进行了很好的区分。
文本由Unicode表示,为str类型。
二进制数据由bytes(字节包)表示,类型为bytes。
3、Python3中bytes和str转换
str可以编码成bytes .encode(‘utf-8’)
bytes可以解码成str .decode(‘utf-16’)
用jupyter安装
利用numpy和scipy进行数据分析
1.1 numpy
python的底层是用c或者c++写的
numpy可完成矩阵运算,无需循环,import numpy as np
1.2numpy里面常用的数据结构
(1)ndarray N维数组对象
ndim属性:维度大小
shape属性:各维度大小
dtype属性:数据类型
创建ndarray
np.array(collection),collection为序列型对象。
例子:
l = range(10)
data = np.array(l)
print(data)
np.zeros((3,4),dtype=’ ‘) 第一个参数为元祖,用来指定大小。
np.ones((2,3))
np.empty((3,3)) empty不是总是返回全0,有时返回的是未初始的随机值。
1.3 numpy的矢量化
1.3.1矢量和矢量的运算
arr = np.array([[1, 2, 3],
[4, 5, 6]])
print(“元素相乘:”)
print(arr * arr)
元素相乘:
[[ 1 4 9]
[16 25 36]]
print(“矩阵相加:”)
print(arr + arr)
矩阵相加:
[[ 2 4 6]
[ 8 10 12]]
1.3.2标量与矢量的运算
arr = np.array([[1, 2, 3],
[4, 5, 6]])
print(1. / arr)
print(2. * arr)
矢量与标量运算的时候,将标量广播到各个元素。
就是说1变成([1,1,1],[1,1,1])
[[ 1. 0.5 0.33333333]
([1,1,1], [ 0.25 0.2 0.16666667
[1,1,1])/([1,2,3], =
[4,5,6])
1.4条件索引
1.4.1单个条件索引
例子:
data_arr = np.random.rand(3,3)
print(data_arr)
year_arr = np.array([[2000, 2001, 2000],
[2005, 2002, 2009],
[2001, 2003, 2010]])
filtered_arr = data_arr[year_arr >= 2005]
print(filtered_arr)
结果:print(data_arr)
[[ 0.96451949 0.94110786 0.94332612]
[ 0.11178966 0.78755247 0.9347162 ]
[ 0.01220505 0.13534351 0.22897805]]
接下来要对年份大于2005的年份进行删选,在以后的数据预处理上面的用处也很大。
对于年份year_arr这个数组来说:相当于是一个这样的矩阵。
这个T和F的矩阵就相当于是一个模板。
过滤矩阵最后的值也就相当于是原来的值上面的对应的T的部分。
最后结果为:[ 0.61387421 0.58898515 0.95047721]
1.4.2多个条件索引
filtered_arr = data_arr[(year_arr <= 2005) & (year_arr % 2 == 0)]
1.5维数转换
转置,transpose,这里要注意的一点是,横轴的axis为1,列轴的axis为0。
1.6通用函数
np.where(condition , x, y)条件为真时,为x。条件为假时,为y.
1.7常用的统计方法:
最后一句话一定要注意:在默认情况下是在全部的维度上做统计。
在axis=0的情况下被认为是在列轴上做统计。
在axis=1的情况下被认为是在横轴上做统计。
1.8 np.all和np.any
np.all全部满足条件
np.any至少有一个元素满足条件。
np.unique找到唯一值并返回排序结果。
1.2 scipy
在numpy的基础上增加了线性方程,信号处理,图像处理,稀疏矩阵等。import scipy as sp
第一个kaggle实战:
心理健康数据的分析https://www.kaggle.com/osmi/mental-health-in-tech-survey
第二讲:数据采集与操作
在网上下载了第二讲的代码,用jupyter notebook打开。(无论是linux还是windows,都应该先进入到代码的那个目录中,再在终端输入jupyter notebook)