NumPy 的 argparition(~)
方法用于根据升序对数组进行分区。用语言解释它是如何工作的相当困难,所以让我们看一个简单的例子。
例子
假设我们有以下未排序的数组:
x = np.array([8,5,7,10,9])
x
的排序版本是:
[5,7,8,9,10]
该排序版本的原始索引是:
[1,2,0,4,3]
argpartition()
方法不返回此排序索引,而是要求您选择一个用于分区的索引,并确保所有小于此索引的值的索引值都出现在它之前,并且所有大于此索引的索引值值出现在其后面。
这是一个例子:
x = np.array([8,5,7,9,6,2])
np.argpartition(x,3)
array([4, 5, 1, 2, 3, 0])
在这里,我们设置 kth=1
,这意味着我们希望索引 3
之前的所有值(包括索引 3
)在排序时位于正确的位置。换句话说,第三个索引,或 x
的第四个 (3+1) 最小值(在本例中为 7),在排序时将位于其正确的位置,所有小于 7 的值都位于它之前,并且所有大于 7 的则紧随其后。因此,一些有效的排序版本如下:
[4, 5, 1, 2, 3, 0]
[4, 1, 2, 5, 3, 0]
[4, 5, 1, 2, 3, 0]
...
警告
k
索引之前的值的顺序未定义。这就是为什么值 4 可能出现在值 1 之前。argpartition
从以上选项中选择一个,并返回其索引。因此,不能保证返回的索引数组代表完美排序的数组。
在我们的具体示例中,返回的索引为:
y
array([4, 5, 1, 2, 3, 0])
它代表以下排序版本:
x[y]
array([6, 2, 5, 7, 9, 8])
在此,请注意以下事项:
-
k-th 索引之前的值(本例中为索引 3)小于 k-th 索引处的值,但它们不一定已排序。
-
k-th 索引之后的值大于 k-th 索引处的值
相关用法
- Python argparse.ArgumentParser.convert_arg_line_to_args用法及代码示例
- Python argparse.ArgumentParser.add_argument_group用法及代码示例
- Python argparse.FileType用法及代码示例
- Python argparse.ArgumentParser.add_mutually_exclusive_group用法及代码示例
- Python argparse.ArgumentParser.get_default用法及代码示例
- Python argparse.ArgumentParser.set_defaults用法及代码示例
- Python argparse.ArgumentParser.exit用法及代码示例
- Python argparse.ArgumentParser.add_subparsers用法及代码示例
- Python NumPy argwhere方法用法及代码示例
- Python NumPy argmin方法用法及代码示例
- Python NumPy argsort方法用法及代码示例
- Python NumPy argmax方法用法及代码示例
- Python arcgis.gis._impl._profile.ProfileManager.save_as用法及代码示例
- Python arcgis.raster.functions.ccdc_analysis用法及代码示例
- Python arcgis.geometry.functions.trim_extend用法及代码示例
- Python arcgis.raster.analytics.sample用法及代码示例
- Python arcgis.features.analysis.derive_new_locations用法及代码示例
- Python arcgis.features.analyze_patterns.calculate_density用法及代码示例
- Python arcgis.geometry.Geometry.label_point用法及代码示例
- Python arcgis.plan_routes用法及代码示例
- Python arcgis.mapping.forms.FormInfo用法及代码示例
- Python arcgis.gis.UserManager.get用法及代码示例
- Python arcgis.raster.ImageryLayerCacheManager.update_tiles用法及代码示例
- Python arcgis.geometry.Geometry.true_centroid用法及代码示例
- Python arcgis.gis.User.generate_direct_access_url用法及代码示例
注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 NumPy | argpartition method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。