numpy.partitionの使用状況

機能

np.partitionワークフローは、私は、基準要素として使用されるインデックスは、要素、すなわち、後ろに配置された要素よりも大きいが、要素未満である、二つの部分に分離され、ソート(昇順)の第1のアレイの上に見ることができますフロントは、高速ここで行に幾分類似、以下の特定のサブクラスを参照してください。

import numpy as np
result = np.random.randint(1, 13,(6,4))
print(result)
result1 = np.sort(result,axis=0)
print(result1)
result2 = np.partition(result, kth=2, axis=0)
print(result2)

ここでは、列(軸= 0)でソートしています

2次元配列をソート結果1得るために私達のオリジナルのアイデアを検証するには

次いで、即ち第三の要素2参照各列のインデックスは二つの部分、各列に分割され

最初の列そのような第三の素子7を選別した後、それはフロント未満配置され、その後方に配置されているよりも大きいです

同様に第2の要素は8ソート3番目の列であります

3列目は等をソートする第三の要素3であり、後に

アレイ上の注意を払う必要があり、その後、10,10,8無秩序最初または最前列のようです

通常、最も値を識別するために適用されます

私たちはこれを行うことができ、各列の二番目に小さい数を見つけることになりましたと仮定します。

import numpy as np
result = np.random.randint(1, 13,(6,4))
print(result)
result1 = np.sort(result,axis=0)
print(result1)
result2 = np.partition(result, kth=1, axis=0)[1]
print(result2)

もちろん、それはデータの重複排除、即ち、唯一の第二カラム2,4,6,11,12ように通常これらのタイプのケースを考慮していない第2のデータは、4小さいです

同様に、我々はまた、各列の二番目に大きいデータを選択することができます。

import numpy as np
result = np.random.randint(1, 13,(6,4))
print(result)
result1 = np.sort(result,axis=0)
print(result1)
result2 = np.partition(result, kth=-2, axis=0)[-2]
print(result2)

何故

なぜそれを行うには、K番目の最大の価値を探して?その理由は、この方法は、アレイの前面と背面は、より速く、ソースコードを見ることができます興味を持っている順序に関係なく、実際には、高速である配列をソートするための第一内部numpy.partitionではなく、唯一のK番目の最大の価値を考慮することです、要するに、任意のプログラムは、最も値kを見つけるためにそれ

おすすめ

転載: blog.csdn.net/weixin_42001089/article/details/89204112