numpy.reshapeパラメータ-1解釈


numpy.reshape
公式文書の解釈
注意すべきは、reshapeがパラメータnewreshapeを与えると-1を伝達することができ、公式ドキュメントでは、残りの自動はマトリクスの規模と残りの次元に基づいて計算されることを示している.
配列の新しいshape属性は元のものと組み合わせるべきで、-1に等しいと、Numpyは残りの次元から配列の別のshape属性値を計算します.
例を挙げます.
z = np.array([[1, 2, 3, 4],
          [5, 6, 7, 8],
          [9, 10, 11, 12],
          [13, 14, 15, 16]])
z.shape
(4, 4)

z.reshape(-1)
z.reshape(-1)
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16])

z.reshape(-1, 1)
つまり,以前はzのshape属性がどれだけあるかは知らなかったが,zを一列にしたいと思っていたが,行数がどれだけあるかは分からず,z.reshape(-1,1),Numpyにより12行が自動的に計算され,新しい配列shape属性は(16,1),従来の(4,4)と組み合わせた.
z.reshape(-1,1)
 array([[ 1],
        [ 2],
        [ 3],
        [ 4],
        [ 5],
        [ 6],
        [ 7],
        [ 8],
        [ 9],
        [10],
        [11],
        [12],
        [13],
        [14],
        [15],
        [16]])

z.reshape(-1,2)newshapeは-1、列数は2、行数は不明、reshape後のshapeは(8,2)
z.reshape(-1, 2)
 array([[ 1,  2],
        [ 3,  4],
        [ 5,  6],
        [ 7,  8],
        [ 9, 10],
        [11, 12],
        [13, 14],
        [15, 16]])

同様に、行数のみが与えられ、newshapeは-1に等しく、Numpyは新しい配列の列数を自動的に計算することもできる.
作者:李彬リンク:https://www.zhihu.com/question/52684594/answer/157491724出典:著作権は作者の所有であることを知っている.商業転載は著者に連絡して許可を得てください.非商業転載は出典を明記してください.