用語比較
NumPyのreshapeとresizeの違い|形を変えた配列を返すか、配列そのものを変えるか(Python3データ分析)
NumPyの reshape は形を変えた配列を返して元の配列を変えず、ndarray.resize メソッドは配列そのものを変えます。
返す側が reshape、自分を書き換える側が resizeと覚えると、コードを見て元の配列が変わるかどうかを判断できます。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。
reshapeとresize(ndarray.resize メソッド)の要点
reshape
形を変えた配列を返す。次元に -1 を指定すると、他の次元から自動で計算される。
resize(ndarray.resize メソッド)
配列そのものを変更する。公式の例では、a.resize((2, 6)) のあと a 自体が2行6列になる。
違いを表で確認
| 比較軸 | reshape | resize(ndarray.resize メソッド) |
|---|---|---|
| 元の配列 a | a.reshape(...) を呼んでも、a の形は変わらない | a.resize(...) を呼ぶと、a そのものが変わる |
| 結果の受け取り方 | 新しい形の配列が返るので、変数で受け取って使う | a を直接変更する。公式の例では、呼び出しの行に結果の表示がなく、次に a を表示して変化を確かめている |
| 次元に -1 を指定 | 指定できる。他の次元から自動で計算される(公式の例では a.reshape(3, -1)) | 形は a.resize((2, 6)) のようにタプルで明示して渡す。-1 の自動計算は、公式では reshape の説明として書かれている |
| 公式の例での形 | 3行4列のまま、a.reshape(3, -1) が3行4列の配列を返す | 3行4列の a が、a.resize((2, 6)) で2行6列になる |
Python3エンジニア認定データ分析試験の学習に使う書籍(Amazon)
PRどこで迷っているかを切り分ける
元の配列を残したまま、別の形で計算したい人
元の a を壊したくない場面です。reshape は形を変えた配列を返すだけなので、返り値を別の変数で受け取って使います。
配列そのものの形を変えたい人
a の形を直接書き換えたい場面です。ndarray.resize メソッドは配列そのものを変更するので、呼んだあとの a が新しい形になります。
reshape(3, -1) の -1 の意味で迷う人
12要素の配列に reshape(3, -1) と書くと、他の次元から自動で計算されて (3, 4) になります。-1 は計算を NumPy に任せる印です。
具体例で使い分ける
例 1
reshape(3, -1) の -1 を読む
公式の例の配列 a は3行4列で、全部で12要素です。この a に a.reshape(3, -1) を呼びます。
- 行数を3と指定し、列数に -1 を指定しています。
- -1 の次元は、他の次元から自動で計算されます。12要素を3行に並べるので、列数は4になります。
- 結果は3行4列の配列で、公式の例では元の a と同じ中身が表示されています。
結論: -1 は「残りは自動で計算して」という指定で、reshape の説明に出てきます。
例 2
a.resize((2, 6)) で a が変わる
同じ3行4列の a に、公式の例のとおり a.resize((2, 6)) を呼びます。
- 呼び出しの行には、結果の表示がありません。
- 次に a を表示すると、2行6列の配列になっています。
- つまり、resize は戻り値を受け取るものではなく、a そのものを変更したと分かります。
結論: resize のあとは、a の shape が (2, 6) になります。
例 3
どちらを使うかを、元の配列の扱いで決める
同じ配列 a を、別の形で使いたい場面です。
- 元の a の形を後でも使うなら、形を変えた配列を返す reshape を選びます。
- a の形をそのまま置き換えてよいなら、配列そのものを変える resize の動きになります。
結論: 判断の軸は、元の配列を変えてよいかどうかです。
問題文から答えを選ぶ手順
- 1
呼び出しの形を見る
a.reshape(...) と a.resize(...) のどちらかを確認します。名前のとおりに動きが分かれます。
- 2
元の配列が変わるかを答える
reshape は形を変えた配列を返し、元の配列は変わりません。resize は配列そのものを変更します。
- 3
-1 の指定があれば自動計算と読む
reshape の次元に -1 があれば、他の次元から自動で計算されます。12要素で reshape(3, -1) なら (3, 4) です。
試験での見分け方
- 1reshape は形を変えた配列を返し、ndarray.resize メソッドは配列そのものを変更する。
- 2reshape で次元に -1 を指定すると、他の次元から自動で計算される。
- 312要素の配列に reshape(3, -1) と書くと (3, 4) になる。
誤答しやすい選択肢
reshape を呼ぶと、元の配列の形も変わると考える
修正: reshape は形を変えた配列を返します。元の配列を変更するのは ndarray.resize メソッドの動きです。
resize の呼び出しの行に、新しい配列が返ると考える
修正: 公式の例では a.resize((2, 6)) の行に結果の表示がなく、次に a を表示して変化を確かめています。配列そのものを変更する動きです。
-1 は「1つ前」や「最後」を指す印だと考える
修正: reshape での -1 は、他の次元から自動で計算される次元の指定です。
確認問題
Q1形を変えた配列を返すのは、reshape と resize のどちらか?
答え: reshape
ndarray.resize メソッドは配列そのものを変更します。
Q2a が3行4列のとき、a.resize((2, 6)) を呼んだあとの a の形は?
答え: 2行6列
resize は配列そのものを変更するので、呼んだあとの a が2行6列になります。
Q312要素の配列に reshape(3, -1) を呼ぶと、形は?
答え: (3, 4)
-1 の次元は、他の次元から自動で計算されます。12÷3で列数は4です。
Q4a.reshape(3, -1) を呼ぶと、元の a の形は変わるか?
答え: 変わらない
reshape は形を変えた配列を返すだけで、元の配列は変更しません。
到達チェック
- reshape が返す側、resize が配列そのものを変える側だと説明できる
- reshape での -1 が自動計算を意味すると言える
- 12要素の配列に reshape(3, -1) と書いたときの形を答えられる
関連ページで確認する
同じ資格で次に知りたいこと
- OOスタイルとpyplotスタイルの違い|Axesを明示するか任せるか(Python3データ分析)
Matplotlibのオブジェクト指向(OO)スタイルとpyplotスタイルの違いを、Figure・Axesの作り方、ラベル設定の書き方、公式の推奨で整理します。公式のQuick start guideで照合した、同じ図を2通りで書く例と確認問題つき。
- NumPyのビューとコピーの違い|スライスは元の配列と共有、copyは共有しない(Python3データ分析)
NumPyのビュー(view)とコピー(copy)の違いを、データの共有、base属性、スライス、deep copyの動きで整理します。NumPy公式のQuickstartで照合した、スライスへの代入で元の配列が変わる例と確認問題つき。
- AxesとAxisの違い|描画領域のAxesと、目盛りを担うAxis(Python3データ分析のMatplotlib)
Matplotlibの Axes と Axis の違いを、役割・個数・ラベルや目盛りの設定先で整理します。公式のQuick start guideで照合した、plt.subplots(2, 2) のとき何個になるかを数える例と確認問題つき。
よくある質問
Qreshapeとresizeの違いは?
reshape は形を変えた配列を返し、元の配列は変わりません。ndarray.resize メソッドは配列そのものを変更します。
Qreshapeの-1は何を意味する?
他の次元から自動で計算される次元の指定です。12要素の配列に reshape(3, -1) と書くと (3, 4) になります。
Qresizeの結果は戻り値で受け取る?
公式の例では a.resize((2, 6)) の行に結果の表示がなく、次に a を表示して変化を確かめています。配列そのものを変更する動きです。
Qデータ分析試験の範囲?
本サイトの第3章NumPyの「演算と軸」で扱います。出題の形式や範囲は、受験前に公式の案内で確認してください。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: AI資格ドリル編集部(運営者情報を見る)
