01、前言
小伙伴们大家好,这里是 【和小安一起学习数据分析】 系列栏目的第二期 操纵NumPy数组。在上期,我们介绍了如何创建一个Numpy数组(ndarray)以及该数组的一些属性,显然,仅仅知道这些并不能让我们完成Numpy的重要使命——处理矩阵,所以本期让我们来看看Numpy到底是如何操纵矩阵的。
02、Numpy数组的花式索引/切片
小伙伴们应该都学过Python,Python数组有一个很好用的功能“切片”,你可以对一个python数组做各种花里胡哨的索引,NumPy数组也有同样的功能:
03、ndarray的运算
现在让我们来看看ndarray的运算操作,首先是最简单的加减乘除:
然后是矩阵乘法以及一些常用的函数:
最后,我们来介绍一个NumPy的特殊功能——广播。在NumPy的实际使用中,我们可能会遇到这样的情况,有两个ndarray,他们形状不同,但是我想对他们作一些运算,这时候不需要我们通过其他方式改变数组的形状,NumPy的广播机制可以直接让它们参与运算,具体实例如下:
讲一下我对广播机制的理解吧。如果需要广播,必然是一个大数组和一个小数组需要做运算,那就先看看两个数组的形状,例如上例中,x(3,3)和v(1,3)(也可以表示成( ,3)),它们两个在列上相等且v的行数为1,所以就把v的行数从1增加到和x相等。
其实说穿了,广播主要也就这一种情况,在某些维度上相等,在另外的维度上值为1。
04、后记
到本篇文章结束,NumPy的基本操作已经介绍完了(创建、属性、索引、运算),在下一篇文章中,我会结合NumPy在深度学习中的实际应用来和大家一起复习前面的知识,学习NumPy的实际应用。
让我们一起向更优秀的自己前进。