Pythonのargsort関数の使い方を現役エンジニアが解説【初心者向け】

初心者向けにPythonのargsort関数の使い方について現役エンジニアが解説しています。argsort関数とはNumpyライブラリの関数で、ソートした結果のインデックスのndarrayを返します。sort関数と比較してみましょう。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

Pythonのargsort関数の使い方について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

 

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まるでしょう。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonのargsort関数の使い方について詳しく説明していくね!

大石ゆかり

お願いします!

この記事ではPythonのargsort関数の使い方について解説します。

目次

 

argsort関数の使い方

argsort関数とはNumpyライブラリの中にある関数で、ソートした結果のインデックスのndarrayを返します。

通常のソート関数だと配列を値にしたがって並び替えた配列を返します。

元の配列だとインデックス番号のこの値から順番にソートされていることがわかるでしょう。

 

argsort関数を使う場合、以下のように記述しましょう。

import numpy as np

インデックスが入ったndarray = np.argsort(ソートしたいndarray)

Numpyライブラリを使うのでnumpyをインポートし、Numpyからargsort関数を呼び出します。

引数にはソートしたいndarrayを設定します。

戻り値は引数で設定したndarrayの値がソートされたものではなく、値がソートされた際に元の配列のインデックス番号が格納されたndarrayを返す仕組みです。

 

[PR] Pythonで挫折しない学習方法を動画で公開中

sort関数との比較

argsort関数と似た関数としてnumpyライブラリのsort関数があります。

sort関数は、引数で設定したndarrayの中身の値をソートした新たなndarrayを返し、引数で設定したndarrayはそのまま使用可能です。

argsort関数は値をソートした際のインデックスをndarrayに設定したものを戻り値で返します。

使われる場面で、sort関数とargsort関数を使い分けましょう。

 

実際に書いてみよう

実際にargsort関数を使ってプログラムを作成してみましょう

プログラムソースコード

import numpy as np

array = np.array([10, 150, 42, 132, 9])

sort_array = np.sort(array)
print(sort_array)

argsort_array = np.argsort(array)
print(argsort_array)

 

実行結果

[ 9 10 42 132 150]
[4 0 2 3 1]

 

まとめ

この記事ではnumpyライブラリのargsort関数について解説しました。

numpyライブラリの関数として、sort関数とargsort関数を理解して使えるようにしましょう。

 

執筆してくれたメンター

メンターSさん

システムエンジニアとしてこれまで行政システムや医療用システムの保守、開発に携わりました。

JavaやPython、PHP、Kotlinなど様々な言語での開発経験があります。

TechAcademyではJavaコース、Pythonコース、AIコースなど7コースを担当しています。

 

大石ゆかり

Pythonのargsort関数の使い方がよく分かったので良かったです!

田島悠介

ゆかりちゃん、これからも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。