快捷键:Help-keyboard shortcuts
一.魔法命令
%run:加载py脚本
例如:%runE:/pythonprogram/hello.py
%timeit:测量代码消耗的时间
例如:%timeit L={i**2for i in range(1000000)}
%lsmagic:查看魔法命令目录
二. numpy
2.1创建
(1)引入numpy包:Import numpy或者importnumpy as np
(2)numpy版本号:numpy.__version__
(3)创建全0矩阵/数组:np.zeros(10),np.zeros((3,5))
创建全1矩阵/数组:np.ones(10)
创建全一个数字的矩阵/数组:np.full(shape=(3,5),fill_value=666)全是666的三行5列矩阵
(4) 数组:np.array([i for i in range(10)])
(5)生成范围内的数组:
np.arange(0,20,2)。第一个参数是起点,第二个是终点(不包含),第三个是步长
np.linspace(0,20,10).第一个参数是起点,第二个是终点(包含),第三个是平均分成多少个数。
(6)随机数:
np.random.randint(0,10)。生成0-9之间的随机整数
np.random.randint(4,8,size=10)。生成大小为10的在4-7之间的整数数组
随机种子:np.random.seed(666)指定随机数
np.random.random()生成0-1之前的随机数
np.random.normal(10,100)指定均值方差的随机数
np.random.normal?查询normal文档
2.2基本操作
(1)基本属性:
维度:ndim例如:x.ndim 矩阵x的维度
元组:shape 例如:x.shape 输出(3,5)表示3行5列
大小:size 例如x.size
(2)数据访问:
一维数组:x[索引]。例如:x[0]
多维数组:X[元组]。例如X[2,2]
一维数组切片:x[起点:终点:步长]。例如x[0:5],x[0:5:2],不包含终点
多维数组切片:例如:X[:2,:3]前2行前三列的二维数组
例如:降维:X[:,0],X[:,0]
创立无关联的子矩阵:subX=X[:2,:3].copy()
升维度:x.reshape(2,5)
(3)数据操作:
a.合并
例如:np.concatenate([x,y])
垂直叠加:np.vstack([A,z])
水平叠加:np.hstack([A,B])
b.分割
例如:一维:x1,x2,x3=np.split(x,[3,7])
多维:水平分割:np.hsplit垂直分割:np.vsplit
(4)数据运算:
a.基本运算:
np.exp(X)=>e的x次方
np.log(X)=>对矩阵的值取log函数
np.cos(X)=>对矩阵的值取余弦函数
b.矩阵间的运算:
里面的矩阵运算+-*/都是对应元素之间的运算
真正的矩阵乘法:A.dot(B)=>A行的每一行和B的每一列相乘再相加
矩阵的转置:A.T=>行变列,列变行。
c.矩阵与向量间的运算
例如:np.vstack([v]*A.shape[0])+A
np.tile(v,(2,1))
元素之间的乘法:v*A
矩阵间的乘法:v.dot(A)
d.聚合操作:把一组值变成一个值。
求和:np.sum(L) 例如:np.sum(X,axis=0)沿着行的方向得出每一列的和。axis=1反之。
求最小值:np.min(L) 最大值np.max(L)
求所有元素的乘积:np.prod(L)
求平均值:np.mean(L)
求中位数:np.median(L)
求统计学中的百分位:np.percentile(big_array,q=50) 表示这组数中50%的数都是小于这么多的。 当q=0就是最小值,a=100就是最大值,通常取for percent in [0,25,50,75,100]
快速排序:np.partition(x,3) 寻找一个标定点,将数组中的小于标定点的元素放在标定点的左侧,大于标定点的元素放在标定点的右侧。
按照索引快速排列元素:np.argpartition(x,3)
f.Fancy Indexing
例如:索引ind=[3,5,8] x[]
或者:ind=np.array([[0,2],[1,3]]) x[ind]
np.count_nonzero(x<=3) x小于等于3的非零元素的个数
np.any(x==0)任何一个数为0的时候返回True
np.all
2.3 array(限定类型)
引入array包:import array
例如:arr=array.array('i',[ifor i in range(10)])
第一个参数表示整型,第二个是list
三. matplotlib基础
引入:import matplotlib as mpl
import matplotlib. pyplot as plt
3.1折线图
plt.plot(x,y)绘制出函数
样式:plt.plot(x,y,color="red",linestyle="--",label="y")
坐标轴范围:plt.xlim(-5,15)左右两个范围
plt.ylim(0,1.5)
plt.axis([-1,11,2,10])前两个是x的范围,后两个是y的范围
图示:plt.legend()
坐标轴label:plt.xlable("x") plt.xlable("y")
标题:plt.title("标题")
3.2散点图
plt.scatter(x,y)绘制函数
样式:plt.scatter(x,y,alpha=0.5)
四.读取数据集合
引入:from sklearn import datasets
例如:
iris=datasets.load_iris()
iris.data
iris.feature_names
iris.target.shape
X=iris.data[:,:2]
plt.scatter(X[:,0],X[:,1])
不同分类不同颜色样式的点
y=iris.target
plt.scatter(X[y==0,0],X[y==0,1],color="red",marker="+")
plt.scatter(X[y==1,0],X[y==1,1],color="blue",marker="x")
plt.scatter(X[y==2,0],X[y==2,1],color="yellow")
更多:
机器学习学习笔记(四)最基础的分类算法
机器学习学习笔记(五)线性回归法
机器学习学习笔记(六)梯度下降法
机器学习学习笔记(七)PCA