机器学习中的numpy的array_机器学习阶段总结(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代表的是列堆叠的次数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值