reshape(1, -1)とreshape(-1, 1)とは何か

reshape(1,-1)とreshape(-1,1)とは

(1, -1) や (-1, 1) を指定すると,それぞれ2次元の横ベクトルや縦ベクトルを簡便に作ることができます。

1次元配列に対してreshape(1, -1)とすると、その配列を要素とする2次元1行の配列になります。

1次元配列に対してreshape(-1, 1)とすると、その配列を要素とする2次元1列の配列となります。 2次元1行の配列とする横ベクトルを作るには、1次元配列をreshape(1, -1)とすれば良いです。


import numpy as np
np.arange(6).reshape((1, -1))

出力

array([[0, 1, 2, 3, 4, 5]])

2次元1列の配列とする縦ベクトルを作るには、1次元配列をreshape(-1, 1)とすれば良いです。

np.arange(6).reshape((-1, 1))

出力

array([[0],
       [1],
       [2],
       [3],
       [4],
       [5]])

reshape()のまとめ

データが1つというのは1要素なので、 1要素の2次元配列(2次元1行の配列)を作りたい場合には、 reshape(1, 1)を利用します。

import numpy as np 
ary = np.array([1])
ary.reshape(1,1)

出力

array([[1]])

ary.shape # (1,) 
ary.reshape(1,1).shape # (1, 1)

1要素1次元だったaryがreshape(1,1)によって、 1要素の2次元1行の配列に変換されています。 2次元1列の配列への変形したい場合は、 reshape(-1, 1)とすると、その配列を要素とする2次元1列の配列となります。

https://aiacademy.jp/texts/show/?id=589&context=subject-python4

Pythonを効率よく学ぶには?

Pythonを効率よく学ぶには、普段からPythonを利用している現役のデータサイエンティストや機械学習エンジニアに質問できる環境で学ぶことです。
質問し放題かつ、体系的に学べる動画コンテンツでデータ分析技術を学びたい方は、オンラインで好きな時間に勉強できるAI Academy Bootcampがオススメです。受講料も業界最安値の35,000円(6ヶ月間質問し放題+オリジナルの動画コンテンツ、テキストコンテンツの利用可能)なので、是非ご活用ください。