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

NumPy連結:ガイド

NumPy配列を連結する方法

NumPyは、Pythonで配列を操作するための優れたライブラリです。あらゆるサイズのアレイの作成から操作まで、すべてを網羅しています。 NumPyに、配列を連結するために使用できるユーティリティが付属しているのは当然のことです。

numpy.concatenate() メソッドは、2つ以上の配列を1つの配列に結合します。

このガイドでは、NumPyアレイとは何か、およびそれらを連結する方法について説明します。始めるのに役立ついくつかの例を見ていきます。始めましょう!

配列の構造

NumPy配列は、NumPyライブラリで機能する配列の一種です。他の配列と同じように見えますが、ndarrayオブジェクト内に格納されています:

array([1, 2, 3])

NumPy配列を操作するには、numpyライブラリをインポートする必要があります:

import numpy as np

2つのアレイを連結します。 1つの配列には、1から9までのすべての数値が含まれます。 2番目の配列には、10から18までのすべての数値が含まれます。

arange()を使用してこれらの配列を作成しましょう 方法:

first_array = np.arange(1, 10).reshape(3, 3)
second_array = np.arange(10, 19).reshape(3, 3)

print(first_array)
print(second_array)

このコードは2つの配列を作成します。各配列は2次元配列です。 reshape()を使用して、これらの配列を2dにしました。 配列ごとに3×3グリッドを作成するメソッド:

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[10 11 12]
 [13 14 15]
 [16 17 18]]

これで、作業できる2つのアレイができました。 concatenate()を使用してそれらを連結しましょう 。

NumPy連結

行ごとまたは列ごとの2つの軸で配列を連結できます。これは、concatenate()を使用して実行されます 方法。連結メソッドは、1d、2d、3d、4d、およびより多くの次元を持つ配列をマージできます。

行ごとに連結

2つの配列を行ごとに連結することから始めます。これにより、2つの配列の項目が行ごとに整列され、1つの配列にマージされます。

final_array = np.concatenate((first_array, second_array))
print(final_array)

concatenate()内にタプルを指定しました 関数。このタプルには、連結する配列のリストが含まれています。パラメータがない場合、concatenate() 行ごとに連結します。

私たちのコードは次を返します:

[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]
 [13 14 15]
 [16 17 18]]

配列は行で連結されています。

列で連結

concatenateメソッドを使用して、2つの配列を列ごとにマージできます。

これを行うには、新しいパラメータaxisを導入する必要があります。デフォルトでは、この値は0です。これはx軸または行軸に対応します。この値をオーバーライドして1に設定できます。これにより、2つの配列が列ごとにマージされます。

2つの配列を列ごとに連結してみましょう:

final_array = np.concatenate((first_array, second_array), axis=1)
print(final_array)

私たちのコードは、最後の例とほとんど同じです。違いは、axis=1パラメーターを指定したことです。コードを実行するとどうなるか見てみましょう:

[[ 1  2  3 10 11 12]
 [ 4  5  6 13 14 15]
 [ 7  8  9 16 17 18]]

配列は列ごとにマージされます。

2つ以上のアレイを連結する

concatenate() メソッドは、任意の数の配列を連結できます。横軸に3つの配列を連結してみましょう。使用する配列には、次の範囲のすべての数値が含まれています。

  • 1から9(両端を含む)。
  • 10〜18(両端を含む)。
  • 19から27(両端を含む)。

Pythonで配列を定義しましょう:

first_array = np.arange(1, 10).reshape(3, 3)
second_array = np.arange(10, 19).reshape(3, 3)
third_array = np.arange(19, 28).reshape(3, 3)

次に、連結を使用してそれらをマージできます。

final_array = np.concatenate((first_array, second_array, third_array), axis=1)
print(final_array)

concatenate()で3つの配列をタプルとして指定しました 方法。組み合わせると、これらの配列は1から27までのすべての数値に対応します。

プログラムを実行してみましょう。

[[ 1  2  3 10 11 12 19 20 21]
 [ 4  5  6 13 14 15 22 23 24]
 [ 7  8  9 16 17 18 25 26 27]]

これで、3つの配列が変数「final_array」に割り当てられました。この変数をコンソールに出力して、アレイが正常にマージされたことを示しています。

結論

NumPy concatenate() メソッドは2つ以上のNumPy配列を結合します。配列はデフォルトで垂直軸で結合されます。 axis =1フラグを使用して、水平アクセスで配列を結合できます。

vstackメソッドとhstackメソッドを使用して、2つ以上の1d配列を連結できます。 concatenate() これらの方法よりも効率的です。 concatenate() 2次元、3次元、およびそれ以上の次元の配列の連結もサポートします。

これで、PythonエキスパートのようにNumPyアレイの連結を開始する準備が整いました!


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

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

  2. PythonでのNumPy配列を使用したブロードキャスト

    アレイのサイズが同じで、特定のサイズが必要な場合、異なるアレイ間の算術演算が毎月行われることがわかっています。ただし、サイズが等しくない場合でも、形状に「1」が前に付いた小さいndimを配列に入力して配列のいずれかを拡張することにより、それらに算術演算を適用できるシナリオがあります。つまり、基本的にブロードキャストとアレイとは、その形状を必要な形状に変更することを意味します。 配列Boradcastingのルール ndimが他の配列よりも小さい配列には、その形状に「1」が付加されます。 出力形状の各次元のサイズは、その次元の入力サイズの最大値です。 特定の次元のサイズが出力サ