スプライシング方法と numpy 配列の使用法についての深い理解

PHPz
リリース: 2024-01-26 11:03:16
オリジナル
515 人が閲覧しました

スプライシング方法と numpy 配列の使用法についての深い理解

この記事を読んで、numpy 配列のスプライシング方法とアプリケーション シナリオを理解してください。

概要:
データ処理と分析では、多くの場合、複数の numpy をスプライスする必要があります。さらなる処理と分析のために配列。 numpy ライブラリにはさまざまな配列の結合方法が用意されています。この記事では、numpy の配列の結合方法とその適用シナリオを紹介し、具体的なコード例を示します。

1. Numpy 配列の結合方法:

  1. np.concatenate
    np.concatenate 関数は、指定された軸に沿って 2 つ以上の配列を結合して、新しい配列を形成できます。構文は次のとおりです。
    np.concatenate((a1, a2, ...), axis=0, out=None)

そのうち、a1、a2、... : スプライスする必要がある配列;
axis: スプライシングの軸を指定します。デフォルトは 0 (最初の軸に沿ってスプライシングすることを意味します);
out: スプライシング結果出力の配列 (指定されていない場合は、新しい配列)が作成されて返されます。

サンプル コードは次のとおりです。
import numpy as np

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])

c = np.concatenate((a, b), axis=0)
print(c)

出力結果:

[[1 2]

[3 4]

[5 6]]

  1. np.vstack および np.row_stack
    np .vstack 関数は、2 つ以上の配列を垂直方向 (行) に積み重ねて、新しい配列を形成します。構文は次のとおりです。
    np.vstack(tup)

このうち、 tup: スタックする必要がある配列タプル。

np.row_stack 関数には、np.vstack 関数と同じ機能があります。

サンプル コードは次のとおりです。
import numpy as np

a = np.array([1, 2, 3])
b = np.array([ 4, 5 , 6])

c = np.vstack((a, b))
print(c)

出力結果:

[[1 2 3]

[4 5 6]]

  1. np.hstack および np.column_stack
    np.hstack 関数は、2 つ以上の配列を水平方向 (列) にスタックします。新しい配列を形成します。構文は次のとおりです。
    np.hstack(tup)

このうち、 tup: スタックする必要がある配列タプル。

np.column_stack 関数は、np.hstack 関数と同じ機能を持ちますが、1 次元配列を扱うことができます。

サンプル コードは次のとおりです。
import numpy as np

a = np.array([1, 2, 3])
b = np.array([ 4, 5 , 6])

c = np.hstack((a, b))
print(c)

出力結果:

[1 2 3 4 5 6]

  1. np.dstack
    np.dstack 関数は、2 つ以上の配列を深さ方向 (Z 軸に沿って) に積み重ねて、新しい配列を形成します。構文は次のとおりです。
    np.dstack(tup)

このうち、 tup: スタックする必要がある配列タプル。

サンプル コードは次のとおりです。
import numpy as np

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

c = np.dstack((a, b))
print(c)

出力結果:

[[[1 5]

[2 6]]

[[3 7]

[4 8]]]

2. アプリケーション シナリオ

  1. データのマージ
    特定のルールに従って複数の配列をマージして大きな配列を形成する必要がある場合は、numpy スプライシング メソッドを使用できます。たとえば、機械学習では、トレーニング セットとテスト セットが分離されることが多く、それらを 1 つのデータ セットにマージする必要があります。

サンプル コードは次のとおりです。
import numpy as np

トレーニング セットが変数 train_data にロードされており、形状は (m, n1) であると仮定します。 )

前提テスト セットは変数 test_data に読み込まれており、形状は (k, n1)です

トレーニング セットとテスト セットを 1 つのデータ セットにマージします

data = np.concatenate((train_data, test_data) , axis=0)
print(data.shape)

  1. データ拡張
    ディープ ラーニングにおけるトレーニング サンプルのデータ拡張モデルの汎化能力を向上させる一般的な方法です。サンプルの複数の拡張サンプルは、numpy のスプライシング方法を使用して組み合わせることができます。

サンプル コードは次のとおりです。
import numpy as np

サンプルが変数サンプルにロードされており、形状が (n, m) であると仮定します。

サンプルの場合 水平反転展開を実行します

flipped_sample = np.fliplr(sample)

展開されたサンプルをマージします

augmented_sample = np.hstack((サンプル、flipped_sample))
print(augmented_sample.shape)

概要:
この記事では、numpy 配列の結合方法とその応用シナリオを紹介します。 numpy のスプライシング メソッドを使用すると、データの処理と分析のために複数の配列をマージできます。スプライシング方法には、np.concatenate、np.vstack、np.row_stack、np.hstack、np.column_stack、np.dstack があり、特定のニーズに応じて適切な方法を選択できます。これらの方法は、データの結合やデータの拡張などのアプリケーション シナリオで非常に一般的であり、データの処理と分析をより適切に行うのに役立ちます。

以上がスプライシング方法と numpy 配列の使用法についての深い理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!