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

尝试连接两个不同维度的数组

尝试连接两个不同维度的数组

缥缈止盈 2021-10-26 15:54:35
我正在学习 python,我有 2 个数组:a = [[ 1 , 2 ]      [3,  4]]b = [ 6,7]当我打印形状时,我得到:a.shape = (2,2)b.shape = (2,)希望结果是:c = [[ 1, 2 , 6]     [3, 4, 7]]我试过了c = a + b和c = np.concatenate((a, b),axis=None) #tried axis=0, axis=1我不断收到错误,例如ValueError: all the input arrays must have same number of dimensions
查看完整描述

3 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

您可以使用 numpy.vstack


In [22]: import numpy as np


In [23]: a = np.array([[1,2], [3,4]])


In [24]: b = np.array([6,7])


In [25]: np.vstack((a.T, b)).T

Out[25]:

array([[1, 2, 6],

       [3, 4, 7]])


查看完整回答
反对 回复 2021-10-26
?
绝地无双

TA贡献1946条经验 获得超4个赞

In [868]: a = np.array([[1,2],[3,4]]); b = np.array([6,7])

In [869]: a.shape, b.shape

Out[869]: ((2, 2), (2,))

b有 1 个维度,它需要 2 个来匹配a:


In [870]: np.reshape(b,(2,1))

Out[870]: 

array([[6],

       [7]])

现在concatenate工作:


In [871]: np.concatenate((a, np.reshape(b,(2,1))), axis=1)

Out[871]: 

array([[1, 2, 6],

       [3, 4, 7]])

np.vstack之所以有效,是因为它会根据需要添加新的初始维度。我添加了一个尾随维度。


从长远来看,要concatenate有效使用,您必须了解尺寸,以及如何在需要时调整它们。


查看完整回答
反对 回复 2021-10-26
  • 3 回答
  • 0 关注
  • 209 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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