机器学习学习笔记(三)Jupyter Notebook ,numpy

快捷键: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

你可能感兴趣的:(机器学习学习笔记(三)Jupyter Notebook ,numpy)