1. ホーム
  2. スクリプト・コラム
  3. その他

[解決済み】ValueError: コンボリューション使用中のオブジェクトが目的の配列に対して深すぎる

2021-12-31 03:14:36

質問

コードは次のとおりです。

h = [0.2,0.2,0.2,0.2,0.2]

Y = np.convolve(Y, h, "same")

Y を次のようにします。

<イグ

実行すると、エラーが発生します。

ValueError: object too deep for desired array

というのは、なぜか convolve 関数は Y を1次元配列とする。

どのように解決するのですか?

その Y は 1 次元配列ではなく、300 行 1 列の 2 次元配列であることがわかります。 shape である (300, 1) .

余分な次元を削除するには、配列を次のようにスライスします。 Y[:, 0] . 一般に n 次元配列を 1 次元に変換する場合,以下のようになります. np.reshape(a, a.size) .

2次元配列を1次元に変換する別の方法として flatten() 関数から numpy.ndarray モジュールで、配列のコピーを作成する点が異なります。