Python
 Computer >> コンピューター >  >> プログラミング >> Python

ソート関数をPythonのNumPy配列に適用する方法について話し合いますか?


NumPyは、「数値」「Python」を指します。これは、多次元配列オブジェクトと、配列の処理に役立つ複数のメソッドを含むライブラリです。 NumPyは、アレイに対してさまざまな操作を実行するために使用できます。 SciPy、Matplotlibなどのパッケージと組み合わせて使用​​されます。 NumPy + Matplotlibは、MatLabの代替として理解できます。これはオープンソースパッケージであるため、誰でも使用できます。

NumPyパッケージに含まれる最も重要なオブジェクトは、「ndarray」と呼ばれるn次元配列です。同じタイプのアイテムのコレクションを定義します。 ndarray内のこれらの値には、インデックス付け(0ベースのインデックス)を使用してアクセスできます。 ndarray内のすべてのアイテムは、メモリ空間内の同じサイズのブロックを取ります。 ndarray内のすべての要素の型は、「dtype」関数を使用して見つけることができます。

ndarrayからのアイテムは、配列スライシングを使用して抽出できます。配列スカラー型のオブジェクトとして表されます。 NumPyにはさまざまな並べ替え機能があります。これらはさまざまな方法で実装でき、これらの各機能は、実行速度、最悪の場合のパフォーマンス、必要なメモリなどによって異なります。

NumPyの「sort」関数は、入力として渡される配列のソートされたコピーを返します。

numpy.sort(arr, axis, kind, order)

ここで、「arr」は並べ替える必要のある配列です。 「軸」とは、配列がソートされる軸を指します。 「種類」とは、並べ替えの種類を指し、デフォルト値はクイックソートです。配列に他のフィールドが含まれている場合、「順序」は並べ替えが必要なこれらのフィールドを指します。

NumPy配列にsort()を適用する例を次に示します-

import numpy as np
my_arr = np.array([[3,56],[19,100]])
print("Original array is :")
print(my_arr)
print("The sort() function called")
print(np.sort(my_arr))
print("Sorting array along axis 0")
print(np.sort(my_arr, axis = 0))
dt = np.dtype([('Name', 'S6'),('Age', int)])
my_arr = np.array([("Will",20),("Jack",19),("Bob", 23)], dtype = dt)
print("Original array is :")
print(my_arr)
print("Array sorted by name ")
print(np.sort(my_arr, order = 'Name'))

出力

Original array is :
[[ 3 56]
[ 19 100]]
The sort() function called
[[ 3 56]
[ 19 100]]
Sorting array along axis 0
[[ 3 56]
[ 19 100]]
Original array is :
[(b'Will', 20) (b'Jack', 19) (b'Bob', 23)]
Array sorted by name
[(b'Bob', 23) (b'Jack', 19) (b'Will', 20)]

説明

  • 必要なライブラリが環境にインポートされます。
  • ndarrayが作成され、「sort」関数を使用して並べ替えられます。
  • 出力が表示されます。
  • ここでも、軸0に沿って並べ替えられ、出力がコンソールに表示されます。
  • 名前と年齢で構成される別の配列が作成され、軸0に沿って並べ替えられます。
  • 出力がコンソールに表示されます。

  1. 実行時にPython関数をどのように定義できますか?

    タイプモジュールをインポートし、その関数types.FunctionType()を次のように使用することで、Python関数を定義し、実行時に実行できます。 このコードは、示されているようにPythonプロンプトで機能します。まず、typesモジュールをインポートします。次に、コマンドdynf=…;を実行します。次に、関数dynf()を呼び出して、次のような出力を取得します >>> import types >>> dynf = types.FunctionType(compile('print "Really Works"&#

  2. Python関数をオーバーロードするにはどうすればよいですか?

    Pythonでは、メソッドを呼び出す方法が複数あるようにメソッドを定義できます。関数の定義に応じて、0、1、2、またはそれ以上のパラメーターを使用して呼び出すことができます。これはメソッドのオーバーロードとして知られています。 与えられたコードには、sayHello()という1つのメソッドを持つクラスがあります。以下のように書き直します。このメソッドの最初のパラメーターはNoneに設定されています。これにより、パラメーターの有無にかかわらず呼び出すオプションが提供されます。 オブジェクトはクラスに基づいて作成され、ゼロと1つのパラメーターを使用してそのメソッドを呼び出します。メソッドのオー