python3机器学习经典算法与应用之Numpy.array索引

python机器学习算法应用

索引

上一节我们知道使用numpy.min()函数可以获得一个array中的最小值。通过numpy.argmin()可以获得最小值的索引
python3机器学习经典算法与应用之Numpy.array索引
使用numpy.max()函数可以获得一个array中的最大值。通过numpy.argmax()可以获得最大值的索引
python3机器学习经典算法与应用之Numpy.array索引

排序和使用索引

创建一个0~15的array,使用numpy.random.shuffle()函数可以将array变为乱序。且是array本身变为乱序。numpy.sort()函数用于将array变为有序,若array作为参数传递则不改变array本身,仅仅是将array排序后的结果输出。只有用array调用sort()函数才改变array本身。
python3机器学习经典算法与应用之Numpy.array索引
使用x调用sort()方法后才改变x本身。python3机器学习经典算法与应用之Numpy.array索引
sort()函数也可用于二维矩阵,将矩阵作为参数传入默认沿列的方向排序,也就是一行内从小到大排序,默认axis=1,也就是沿着列排序。若axis=0则表示沿着行排序,也就是一列从上到下有序。
python3机器学习经典算法与应用之Numpy.array索引
首先将x排成乱序。使用numpy.argsort()返回的是一系列的索引值。是排好序后每一个元素在原数组中的索引值。如下例:np.argsort()返回的列表第一个元素为8,说明最小的元素在原数组中的索引为8(就是x中的0);第二个元素为15,也就是说第二小的元素在原数组中的索引为15(就是x中的1),以此类推。
python3机器学习经典算法与应用之Numpy.array索引
numpy.partition()函数与快速排序中的partition功能类似,选择一个标定点,将小于标定点的元素都移到标定点的左方,将大于标定点的元素都移到标定点的右方(但是标定点的两侧不一定有序)。而numpy.argpartition()函数则返回partition()操作后每个数据元素在原array中的索引。
如下例:partition()将数组x中小于3的元素都移到3的左边,大于3的元素都移到3的右边。numpy.argpatition()函数则是返回了索引,第一个8表示0在x中的索引,15是1在x中的索引,13是2在x中的索引,以此类推。
python3机器学习经典算法与应用之Numpy.array索引
numpy.argsort()函数返回对二维矩阵的排序(按行或者按列排序,默认沿着列排序)的元素在原矩阵的行或者列内的索引值(行还是列取决于排序方式)。
如下例:第一个argsort()函数返回值的第一行[0,3,2,1],表示第一小的元素在原矩阵这一行的索引0位置,第二小的元素在原矩阵这一行的索引3位置。以此类推。
python3机器学习经典算法与应用之Numpy.array索引
argpartition()返回的也是partition()函数排序后的元素在原矩阵中的索引值。
python3机器学习经典算法与应用之Numpy.array索引