0

np を使用していくつかの値を hstack しようとしています。ただし、次のエラーが表示されます。

Buffer has wrong number of dimensions (expected 1, got 2) 

私がスタックする行は次のとおりです。

s= np.hstack((np.array([cell_name, freq]).reshape((1,-1)),pred,y1_a,y1_b,y1_c,y2_a,y2_b,y2_c,y3_a,y3_b,y3_c,df[output_name].iloc[i].values.reshape(1,-1)))

配列内のすべての要素の形状を確認しましたが、最初の次元はすべて同じ 1 です。何かアイデアはありますか?

ps: 作業しようとしているデータフレームの長さは 2 で、このスタッキングは for ループで次のように行われます。

for i in range(df.values.shape[0]):

    s= np.hstack((np.array([cell_name, freq]).reshape((1,-1)),pred,y1_a,y1_b,y1_c,y2_a,y2_b,y2_c,y3_a,y3_b,y3_c,df[output_name].iloc[i].values.reshape(1,-1)))

4

1 に答える 1

0

詳細にデバッグする必要があります。hstackできるだけ長く試すことができます。どこかで、入力は 2 次元でなければなりません。

これを試すことができると思います。

for i in reange(df.shape[0]):
    my_list = [np.array([cell_name, freq]).reshape((1,-1)), pred, y1_a, y1_b, y1_c, y2_a, y2_b, y2_c, y3_a, y3_b, y3_c, df[output_name].iloc[i].values.reshape(1,-1)]
    for j in range(len(my_list)):
        print(f'run: {j}')
        print(my_list[j].shape)
        tup = tuple(my_list[:j])
        s = np.hstack(tup)

これが機能しない場合は、numpy 配列を公開する必要があります。機能していない最小限の例を作成できるかもしれません。

于 2020-11-30T11:12:44.647 に答える