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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。