ホームページ >バックエンド開発 >Python チュートリアル >Numpy の Reshape() の -1 パラメータはワイルドカードですか、それとも固定値ですか?

Numpy の Reshape() の -1 パラメータはワイルドカードですか、それとも固定値ですか?

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

Is the -1 Parameter in Numpy's Reshape() a Wildcard or a Fixed Value?

Numpy Reshape における -1 の役割を理解する

Numpy では、 reshape() メソッドを使用して配列の形状を変換できます。 2D 配列を操作する場合、reshape(-1) を使用してそれらを 1D 配列に再形成することができます。例:

import numpy as np

a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
a.reshape(-1)
# Output: array([[1, 2, 3, 4, 5, 6, 7, 8]])

通常、array[-1] は配列の最後の要素を表します。ただし、reshape(-1) のコンテキストでは、これは別の意味を持ちます。

Reshape の -1 パラメーター

reshape(- 1) はワイルドカード ディメンションとして機能します。これは、新しい形状の対応する寸法が自動的に決定される必要があることを示します。これは、新しい形状が元の配列の形状と一致し、その長さの次元を維持する必要があるという基準を満たすことによって行われます。

Numpy では、形状パラメーターの 1 つで -1 を使用できるため、未知の次元の指定が可能になります。 。たとえば、(-1, 3) または (2, -1) は有効な形状ですが、(-1, -1) は有効ではありません。

変形 (-1) の例

次の配列を考えます:

z = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
z.shape  # (3, 4)

(-1) を使用した再形成:

z.reshape(-1)
# Output: array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])
# New shape: (12,)

(-1, 1) を使用した再形成 (単一特徴):

z.reshape(-1, 1)
# Output: array([[ 1], [ 2], [ 3], [ 4], [ 5], [ 6], [ 7], [ 8], [ 9], [10],
#                [11], [12]])
# New shape: (12, 1)

(-1, 2) を使用した変形 (単一行):

z.reshape(1, -1)
# Output: array([[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12]])
# New shape: (1, 12)

(2, -1) を使用した変形:

z.reshape(2, -1)
# Output: array([[ 1,  2,  3,  4,  5,  6], [ 7,  8,  9, 10, 11, 12]])
# New shape: (2, 6)

使用した変形(3, -1) (元の形状):

z.reshape(3, -1)
# Output: array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
# New shape: (3, 4)

両方の次元を -1、つまり (-1, -1) として指定すると、エラーが発生することに注意してください。

reshape() の -1 の重要性を理解することで、開発者は配列の形状を効果的に変換して、Numpy での特定のデータ処理ニーズを満たすことができます。

以上がNumpy の Reshape() の -1 パラメータはワイルドカードですか、それとも固定値ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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