NumPy(三):

309 阅读2分钟

八、花哨的索引(单个索引的扩展):

1. 通过传递单个列表或数组获取结果:

在这里插入图片描述
在这里插入图片描述
利用花哨的索引,结果的形状与索引数组的形状一样:
在这里插入图片描述
2. 花哨的索引对多个维度也适用,第一个索引指的是行,第二个索引指的是列:
在这里插入图片描述
在这里插入图片描述
3. 索引值的配对遵循广播规则,每一行的值都与每一列配对:
在这里插入图片描述
4. 组合索引:
在这里插入图片描述
花哨的索引和简单的索引组合:
在这里插入图片描述
花哨的索引和切片组合:
在这里插入图片描述
花哨的索引和掩码组合:
在这里插入图片描述
在这里插入图片描述
5. 用花哨的索引修改值:
在这里插入图片描述
注意: 操作中重复的索引往往会导致出乎意料的结果

在这里插入图片描述
如果希望实现累加,可以使用 ufunc.at ()方法:
在这里插入图片描述
at() 函数在这里对给定的操作、给定的索引(这里是 i)以及给定的值(这里是 1)执行 的是就地操作

6. 花哨的索引的应用: 1.选择随机点 2.数据区间划分

九、数组的排序(默认是快速排序):

1. np.sort()方法(在不修改原始输入数组的基础上返回一个排好序的数组):

在这里插入图片描述
2. python的sort()方法(用排好序的数组替代原始数组):
在这里插入图片描述
3. np.argsort()方法(返回的是原始数组排好序的索引值):
在这里插入图片描述
可配合花哨的索引创建有序数组:
在这里插入图片描述
4. 可设置axis参数沿着行或者列排序:
在这里插入图片描述
5. 部分排序:分隔 ①、np.partition()(输入是数组和数字 K,输出结果是 一个新数组,最左边是第 K 小的值,往右是任意顺序的其他值,两个分隔的区间的元素均是无序的):
在这里插入图片描述
与排序类似,也可以沿着多维数组任意的轴进行分隔
在这里插入图片描述
②、np.argpartition()(返回分隔的索引值)