ホームページ >バックエンド開発 >Python チュートリアル >NumPy の Reshape 関数の「-1」値の意味と使用法は何ですか?

NumPy の Reshape 関数の「-1」値の意味と使用法は何ですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-20 22:13:30578ブラウズ

What is the Meaning and Usage of the '-1' Value in NumPy's Reshape Function?

NumPy の Reshape 関数の '-1' 値を理解する

NumPy の reshape 関数を使用すると、多次元配列の形状を変換できます。 「-1」値は通常、新しい形状を指定するときにプレースホルダーとして使用されますが、その解釈は、最後の要素としての array[-1] の一般的な意味とは異なります。

形状変更のコンテキストでは、" -1" は不明な寸法を示します。この関数は、配列の既存の形状と指定された他の次元に基づいて、この次元を自動的に決定します。重要な原則は、新しい形状が元の形状と互換性がある必要があるということです。

「-1」がどのように機能するかをよりよく理解するために、次の例を検討してください。

<code class="python">import numpy as np

a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print(a.reshape(-1))</code>

この場合, a は (2, 4) の形状をしています。 reshape(-1) を使用することで、配列を 1 次元配列に平坦化します。新しい形状は (8,) になり、元の形状 (2x4 = 8) と互換性があります。

次に、「-1」を使用して配列を再形成するさまざまな方法を検討してみましょう。

単一の特徴への再形成:

配列を単一の特徴 (つまり、単一の列) を持つ形式に再形成するには、 reshape(-1, 1) を使用できます:

<code class="python">print(a.reshape(-1, 1))</code>

これにより、(8, 1) の形状が得られ、各要素は元の配列の行になります。

単一サンプルへの再形成:

同様に、配列を単一のサンプル (つまり、単一の行) を持つ形式に再形成するには、 reshape(1, -1):

<code class="python">print(a.reshape(1, -1))</code>

を使用できます。 (1, 8) の形状を生成します。ここで、各要素は元の配列の列です。

未知の次元での再形成:

次元を 1 つだけ指定する場合「-1」と指定すると、関数は元の形状と指定された次元に基づいて未知の次元を計算します。

<code class="python">print(a.reshape(2, -1))</code>

この例では、行数を 2 として指定します。関数は、列の数は 6 になり、(2, 6) の形状になります。

不明な複数次元のエラー:

複数の次元を指定することに注意することが重要です"-1" と指定すると、関数は 1 つの未知の次元のみを処理できるため、エラーが発生します:

<code class="python">try:
    a.reshape(-1, -1)
except ValueError as e:
    print(e)</code>

これにより、「不明な次元は 1 つだけ指定できます。」というエラー メッセージが生成されます。

以上がNumPy の Reshape 関数の「-1」値の意味と使用法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。