机器学习阶段总结(numpy)

两大魔法命令(%run与%timeit)

%run中%表示run命令后面只能由一个操作语句,如有两个操作语句甚至是更多,可以按照语句个数添加相应的%

%run用于对于文件的导入,文件主要是python语言文件

例如:%run machinestudy/hello.py  这个语句就是将hello.py文件导入jupyter notebook 中去,从而进行方法调用。


第二个方法是用于测算时间复杂度的魔法命令%timeit

例如:%%timeit

                        L=[]

                            for n in range(1000)  L.append(n**2)


上面的语句时创建一个数组(序列),n从1开始进行平方操作,将其得到的数据添加进入所创建的列表中去,进行1000次操作.

例如:%time

                L=[i**2 for i in range[1000]]


除了刚才的两个魔法命令,还有一些命令我们还没有学习,但是我们可以利用 %Ismagic?这个命令来查看剩余的魔法命令,




现在,我进入最为重要的numpy总结阶段

代码1 for _in range(10):

                print("很好用")

这段代码即为将输出语句打印十次

代码2  data= [i*2 for i in range(100)]

                len(data) //测试数据长度

                data[:10]//显示前十个元素

                data[-1]//显示最后一个元素

其中list.append(x**2)意思是将x平方化,并将数据添加将纳入list列表中去,

代码3 import random

                L=[random.random() for i in range(100000)]

                L.sort()//进行数据排序操作



numpy array 矩阵操作

numpy._version_//查看numpy的版本

import numpy as py //将numpy易名为np,方便后面调用


代码1 arr=array.array('i',[i fo i in range(1000)])

第一个参数表示设置出创建列表元素的数据类型,第二个元素则进行数据元素的创建


代码2 nparr= np.array([i for i in range(10) ])

nparr.dtype//设置列表类型


nparr.zeros(10)//创建十个全部为0 的数据列表


nparr.zeros(10,dtype=int),第二个属性设置列表元素的属性,


nparr.zeros((3,5))//创建三行五列的数组,可以在后面添加dtype=int ,从而进行数据元素设置,


nparr.ones(10)//创建十个全部之为1 的数组


np.full((3,5),666)//设置三行五列的数组其中元素值全部为666,

等同鱼np.full(shape=(3,5),fill_value=666)



random方法的调用

代码1 np.random.random()//生成一个在0到1之间的数

           np.random.random(size=10)//生成十个值在0到1 之间的数


            np.random.seed(随机数)//当设置相同的随机数的时候,两次产生的随机数相同


            np.random.randint(0,10)//生成一个值在0到10的int类型的数据


           np.random.randiint(0,10,10)//生成十个值在0到10的类型的数据


            np.random.randint(0,10,size=10)//比较与上面代码的优化

            np.random.randint(0,10,size=(3,5))//szie用于设置数据放置形式


            np.random.normal()//产生符合均值为0,方差为1的数据

            np.random.normal(均值,方差,大小(size))


            X.ndim//查看X的维度


当X为二维数组时,访问方法为X[(0,0)]

X[0:5]//输出从0 到5 的所有元素


X[:5]//输出在5位置之前的数据

X[5:]//输出在5 位置之后的元素数据

X[::2]//从头到尾输出数据,但是步长为2

X[::-1]//从尾到头输出数据

X[:2,:3]//输出前两行前三列的数据

X[::-1,::-1]//从尾到头输出,矩阵反转

X[0]=X[0,:]//获取行

X[,:0]//获取列

subx=X[:2,:3].copy()//复制数组



arange与range方法的调用

代码1 range=(0,20,2)//第一个元素是起始点,第二个元素代表是终止点,第三个元素代表是步长

            arange(0,20,0.2)。。步长为小数的时候在arange是成立的,但是在range中则会报错,

代码2 linespace(0,20,10)//截断出十个段,第一个与第二元素同上面意思,第三个元素表示截断多少个点。


Reshape方法

x.reshape(2,5)//转换为二行五列的矩阵

x.shape(10,-1)//不知道



矩阵的合并

代码1 np.concatnate({x,y})//进行x与y的合并


 当然concatnate中可以有三个元素

           np.concatnate(x,y,z)


np.concatnate([A,A],axis=0或者1)//axis代表是使用行或者列来进行矩阵合并,0代表时行,1代表时列


当然两个矩阵大小不一样,可以看一下的代码

代码2  A2 = np.concatnate([A,z.reshape(1,-1)])


垂直叠加数据

代码:np.vstack([A,z])


水平叠加数据

代码:np.hstack([A,z])


矩阵的分割

代码:x1 ,x2 ,x3 = np.split(X,[3,7])//第一个元素时操作对象,第二个元素代表是分割点,还可以有axis属性的添加,进行按列分割或者是按行分割


有叠加相同,np对象有vsplit()与hsplit()两种方法进行分割

在此,我就不一一列举了

代码: upper,lower = np.vsplit(A,[2])

代码:right,left = np.hsplit(A,[2])



矩阵运算(重中之重)

universial function(基本功能)

1.np.abs()//

2. np.sinx()//

3. np.cos()//

4. np.tan()//

5. np.exp()//

6. np.power()//

7. np.log()//

8. np.lg2(x)//

9. np.log10(x)//


矩阵相加

代码:v= np.array([1,2])

v+a=array([1,3],[3,5])

np.vstrack([v]*A,shape[0])//将v的向量落在A家族的第0维度

np.stack([v]*A.shape[0]+A)//将v的向量落在A家族的第0维度,再加上A矩阵

np.title(V,(2,1))//2代表是行堆叠的次数,1代表的是列堆叠的次数

你可能感兴趣的:(机器学习阶段总结(numpy))