为了账号安全,请及时绑定邮箱和手机立即绑定

将一维数组连接到一个 3D 数组

将一维数组连接到一个 3D 数组

慕仙森 2021-06-29 13:39:38
我有一个三维阵列A,具有形状(5774,15,100)和另一个1 d阵列B具有形状(5774,)。我想添加这些以获得另一个C具有 shape 的矩阵(5774,15,101)。我使用hstack的C = hstack((A ,np.array(B)[:,None]))我收到以下错误,任何建议。ValueError: could not broadcast input array from shape (5774,15,100) into shape (5774)
查看完整描述

1 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

您需要使用np.concatenate(与各种np.*stack方法不同,它可以连接不同形状的数组)。然后,您需要使用np.broadcast_to来获得该(5774,)形状的数组(5774, 15, 1)(因为concatenate仍然需要所有数组具有相同的维数)。


C = np.concatenate((A, 

                    np.broadcast_to(np.array(B)[:, None, None], A.shape[:-1] + (1,))), 

                   axis = -1)

检查:


A = np.random.rand(5774, 15, 100)

B = np.random.rand(5774)

C = np.concatenate((A, 

                    np.broadcast_to(np.array(B)[:, None, None], A.shape[:-1] + (1,))), 

                   axis = -1)

C.shape


Out: (5774, 15, 101)


查看完整回答
反对 回复 2021-07-13
  • 1 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号