python机器学习之numpy的学习

numpy作为python机器学习里面重要的数学库,里面放着很多我们机器学习算法中需要的方法,这里挑几个来讲讲

arr1 = np.random.randint(10, 40, [5,8])

意思是生成一个5行,8列的,大小范围在10到40的整型随机矩阵

 

numpy.zeros([3,5], dtype=int)

 第一个值可以是数组,也可以是数字,如果是是数字就是生成n个0的一维矩阵,第二个参数dtype是矩阵里面的类型,如果不加,矩阵里面的数值默认是浮点型,如果加了int,就int类型

 

arr = numpy.ones([4,3], dtype=int)

和zeros差不多,不过这个是生成全是1 的矩阵,数学也称之为单元矩阵,向量也是1

 

arr = numpy.full([3,7], 999)

如果是想自己生成一个全是同一个数的矩阵,就用full

 

numpy.random.seed(444)
numpy.random.randint(20, 10000, [3,5])

上面这种写法是说,随机种子固定是444,然后生成一个随机矩阵,这种主要是用来既想生成一个随机矩阵,又想这个随机矩阵只生成一次后面全部都用同一个的情况,当然也可以将生成的随机矩阵保存到另外一个变量中。随机种子一旦固定下来,生成的随机矩阵也是不会变化的

 

上面所说的都是生成二维矩阵

numpy.arange(10, 20, 3)

arange是生成一个一维矩阵,但是如果想用这个一维矩阵转化成二维的呢

用reshape来转化,里面的[2,-1]是说,生成一个2行,列数由计算机帮我算出来的矩阵,所以这里填了-1,这里其实就相当于[2,2],不过当一维矩阵数值很大的时候,我们就只需要知道我们需要一个多少行或者多少列的数字,另外一个数就由计算机帮我们算好即可

 

numpy中还有两个属性可以查看矩阵的信息

ndim 查看矩阵维度,size 查看整个矩阵有多少个元素

 

最后讲下numpy里生成一个符合正态分布的随机矩阵

np.random.normal(4, 100, 20)

这是一个均值为4,方差为100的正态分布的随机矩阵,均值就是这个正态分布图形的对称轴,方差就是整个图形的宽度,方差越大,说明这一组数值越不稳定,越小就越稳定

 

最后讲讲如果获取矩阵里面的值

有两种

arr[1][1] 和 arr[1,1]

都是获取第2行的第2列,但是两者效率是有区别的

从上图可以看出,arr6[3000, 10000]明显要比arr6[3000][10000]快的,时间差不多快了一倍,为什么呢

意思应该就是arr6[3000][10000]这种会先为第一维创建一个索引数组,创建完之后再去创建第二维的索引数组,之后再检索

而arr6[3000, 10000]这种针对整个矩阵创建一个索引数组,然后就直接检索了

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值