python机器学习之numpy的学习

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

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

python机器学习之numpy的学习

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

 

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

python机器学习之numpy的学习

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

 

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

python机器学习之numpy的学习

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

 

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

python机器学习之numpy的学习

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

 

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

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

 

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

numpy.arange(10, 20, 3)

python机器学习之numpy的学习

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

python机器学习之numpy的学习

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

 

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

python机器学习之numpy的学习

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

 

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

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

python机器学习之numpy的学习

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

python机器学习之numpy的学习

 

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

有两种

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

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

python机器学习之numpy的学习

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

python机器学习之numpy的学习

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

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