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尽可能长的时间。某处输入必须是二维的。

我想你可以试试这个。

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 回答