我尝试了以下方法:
a = np.array([1,2,3]) b = np.array([4,5,6]) np.concatenate((a,b), axis=0) array([1, 2, 3, 4, 5, 6]) np.concatenate((a,b), axis=1) array([1, 2, 3, 4, 5, 6]) 但是,我希望至少有一个结果像这样
array([[1, 2, 3], [4, 5, 6]]) 为什么它不是垂直连接的? 问题来源于stack overflow
因为a和b都只有一个轴,因为它们的形状是(3),所以axis参数专门指代要连接的元素的轴。
该示例应阐明对concatenate轴的处理方式。取具有两个轴的两个向量,形状为(2,3):
a = np.array([[1,5,9], [2,6,10]]) b = np.array([[3,7,11], [4,8,12]]) 沿第一个轴连接(第一个行,然后第二个行):
np.concatenate((a,b), axis=0) array([[ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11], [ 4, 8, 12]]) 沿第二个轴连接(第一个列,然后第二个列):
np.concatenate((a, b), axis=1) array([[ 1, 5, 9, 3, 7, 11], [ 2, 6, 10, 4, 8, 12]]) 要获得您呈现的输出,可以使用 vstack
a = np.array([1,2,3]) b = np.array([4,5,6]) np.vstack((a, b)) array([[1, 2, 3], [4, 5, 6]]) 您仍然可以使用进行操作concatenate,但是您需要先对其进行重塑:
np.concatenate((a.reshape(1,3), b.reshape(1,3))) array([[1, 2, 3], [4, 5, 6]]) 最后,如评论中所建议,重塑它们的一种方法是使用newaxis:
np.concatenate((a[np.newaxis,:], b[np.newaxis,:]))
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。