繁体   English   中英

pandas:使用 hstack 时缓冲区的维数错误(预期为 1,得到 2)

[英]pandas: Buffer has wrong number of dimensions (expected 1, got 2) when using hstack

我正在尝试使用 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:我正在尝试处理的dataframe的长度是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)))

您必须更详细地调试。 您可以尽可能长时间地尝试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 arrays。 也许您可以创建一个不起作用的最小示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM