1. ホーム
  2. python

python reshape() function ValueError: 新しい配列の合計サイズは変更しない必要があります。

2022-02-17 18:31:49
<パス

以前、こんな小さな問題がありました。画像を配列に変換して保存していたのを思い出し、それを2次元の配列に変換して処理する必要があったので、その辺の話です。ここで元に戻すのではなく、簡単な小さな例を使って説明します。a.reshape()を使って配列の形を変え、1次元の配列を作り、2次元の配列に変換して、エラーを出しているところです。

さて、この問題に遭遇したところで、この関数について勉強してみましょう。まず、エラーメッセージを見てください。 新しい配列の合計サイズが変更されていないこと 新しい配列の合計サイズは変更してはいけません。つまり、配列の要素数は変更してはいけません。また、以前の 8 要素を考えると、次元を変更した後も要素数は同じでなければなりません。

a.reshape(x,y). ここで、x,yは2つの軸と考えることができ、私のように、xは水平(つまり行)、yは垂直(つまり列)をマークすればいいのです。ここでは、例えば2行で8個の要素にしたいので、列の要素数は当然4個(2*4=8)です。

ここで一部の人々は、2次元に880 * 800場合は、コンピュータを取り出す必要はありません、答えはノーです、(x、y)関数、x、yパラメータ、-1に置き換え値のいずれか、それが自動的にこの軸の長さを計算します再形成します。あなたが理解する次のようになります見てください。

OK、大体こんな感じです。最後に見ていただくとわかりますが、やはり高次元のものに変換できますし、要素数の計算方法については、自分で叩いてみるとすぐに理解できます。