LoginSignup
92
71

More than 5 years have passed since last update.

numpyのreshape(-1)とは?

Last updated at Posted at 2017-12-04

stackoverflowの記事で見つけました。

どういうものか

reshapeの一つのサイズが決まっているとき、もう一方を-1とすると、-1には元の形状から推測された値が入る。(例を見ないと分かりにくい)

公式ドキュメント(翻訳)

新しい形状は、元の形状と互換性がなければなりません。整数の場合、結果はその長さの1次元配列になります。 1つの形状寸法は-1とすることができる。この場合、値は配列の長さと残りの次元から推測されます。

解説

3行4列のnumpy配列があったとします。

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

-1を渡した場合は、行ベクトルになります。この場合は、列サイズが元の形状から推測されて決定されます。

row_vector.py
z.reshape(-1)
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])

以下のように、reshape(-1, 2)とすると列数だけが2で決まり、行数は元の形状から推測されて決定されます。

reshape.py
z.reshape(-1, 2)
array([[ 1,  2],
   [ 3,  4],
   [ 5,  6],
   [ 7,  8],
   [ 9, 10],
   [11, 12]])
92
71
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
92
71