1. ホーム
  2. python-3.x

[解決済み] TypeError: append() に 1 つの必須位置引数がない: 'values'

2022-02-11 14:17:43

質問

私は360x190サイズの変数'x_data'を持っており、データの特定の行を選択しようとしています。

 x_data_train = []
 x_data_train = np.append([x_data_train,
                           x_data[0:20,:],
                           x_data[46:65,:],
                           x_data[91:110,:],
                           x_data[136:155,:],
                           x_data[181:200,:],
                           x_data[226:245,:],
                           x_data[271:290,:],
                           x_data[316:335,:]],axis = 0)

次のようなエラーが表示されます。 TypeError: append() missing 1 required positional argument: 'values'.

どこで間違ったのでしょうか?

を使用している場合

x_data_train = []
x_data_train.append(x_data[0:20,:])
x_data_train.append(x_data[46:65,:])
x_data_train.append(x_data[91:110,:])
x_data_train.append(x_data[136:155,:])
x_data_train.append(x_data[181:200,:])
x_data_train.append(x_data[226:245,:])
x_data_train.append(x_data[271:290,:])
x_data_train.append(x_data[316:335,:])

の場合、出力サイズは160行から8行になります。

更新してください。

matlabでテキストファイルを読み込むと、x_dataは360行190列の変数となる。 1から20、46から65、...の行のデータを選択したい場合は、次のようにする。 x_data_train = xdata([1:20,46:65,91:110,136:155,181:200,226:245,271:290,316:335], :); その結果、x_data_trainは私の望む配列になります。

Pythonでこれを行うにはどうすればよいでしょうか。20*192の8つのサブセットの配列が得られますが、私は160*192の1つの配列にしたいのです。

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

x_dataとnpの詳細が必要かもしれませんが...

第一に、同じリストのコピーを2つ作成している:npとx_data_train 2つ目:x_dataのインデックスが変です。 第三に、append()が2つしか受け付けないのに、3つのオブジェクトを渡している。

x_dataのインデックスを見直すことで、現在のエラーは解決すると思いますが、appendに2つの値を渡すことに関連して、別のエラーが発生することになります。

そして、あなたが望んでいるのは、きっと

    x_data_train.append(object) 

ではなく

    x_data_train = np.append(object)

で、実際に必要なのは

    x_data_train.extend([objects])

appendとextendの詳細はこちら。 アペンドとエクステンドの比較