前言
前面我们学习了numpy库的简单应用,今天来学习下比较重要的如何处理数组。
处理数组形状
下面可将多维数组转换成一维数组时的情形。
利用以下函数处理数组的形状:
堆叠数组
从深度看,数组既可以横向叠放,也可以竖向叠放。因此,可以使用vstack()、dstack()、hstack()、column_stack()、row_stack()、和concatenate()等函数。
首先我们要建立一些数组,然后整体说一下各种叠加方式,最后放上示例代码:
整体代码如下:
#-*- coding:utf-8 -*-
#stacking.py
import numpy as np
#创建数组
a = np.arange(9).reshape(3,3)
print(a)
#Out:
#array([[0, 1, 2],
# [3, 4, 5],
# [6, 7, 8]])
b = 2 * a
print (b)
#Out:
#array([[ 0, 2, 4],
# [ 6, 8, 10],
# [12, 14, 16]])
#水平叠加
print (np.hstack((a, b)))
#Out:
#array([[ 0, 1, 2, 0, 2, 4],
# [ 3, 4, 5, 6, 8, 10],
# [ 6, 7, 8, 12, 14, 16]])
print (np.concatenate((a, b), axis=1))
#Out:
#array([[ 0, 1, 2, 0, 2, 4],
# [ 3, 4, 5, 6, 8, 10],
# [ 6, 7, 8, 12, 14, 16]])
#垂直叠加
print (np.vstack((a, b)))
#Out:
#array([[ 0, 1, 2],
# [ 3, 4, 5],
# [ 6, 7, 8],
# [ 0, 2, 4],
# [ 6, 8, 10],
# [12, 14, 16]])
print (np.concatenate((a, b), axis=0))
#Out:
#array([[ 0, 1, 2],
# [ 3, 4, 5],
# [ 6, 7, 8],
# [ 0, 2, 4],
# [ 6, 8, 10],
# [12, 14, 16]])
#深度叠加
print (np.dstack((a, b)))
#Out:
#array([[[ 0, 0],
# [ 1, 2],
# [ 2, 4]],
#
# [[ 3, 6],
# [ 4, 8],
# [ 5, 10]],
#
# [[ 6, 12],
# [ 7, 14],
# [ 8, 16]]])
oned = np.arange(2)
print (oned)
#Out: array([0, 1])
twice_oned = 2 * oned
print (twice_oned)
#Out: array([0, 2])
print (np.column_stack((oned, twice_oned)))
#Out:
#array([[0, 0],
# [1, 2]])
print (np.column_stack((a, b)))
#Out:
#array([[ 0, 1, 2, 0, 2, 4],
# [ 3, 4, 5, 6, 8, 10],
# [ 6, 7, 8, 12, 14, 16]])
#数组对比
print (np.column_stack((a, b)) == np.hstack((a, b)))
#Out:
#array([[ True, True, True, True, True, True],
# [ True, True, True, True, True, True],
# [ True, True, True, True, True, True]], dtype=bool)
#列式堆叠
print (np.row_stack((oned, twice_oned)))
#Out:
#array([[0, 1],
# [0, 2]])
print (np.row_stack((a, b)))
#Out:
#array([[ 0, 1, 2],
# [ 3, 4, 5],
# [ 6, 7, 8],
# [ 0, 2, 4],
# [ 6, 8, 10],
# [12, 14, 16]])
print (np.row_stack((a,b)) == np.vstack((a, b)))
#Out:
#array([[ True, True, True],
# [ True, True, True],
# [ True, True, True],
# [ True, True, True],
# [ True, True, True],
# [ True, True, True]], dtype=bool)
小结
今天学习一下Python中numpy的堆叠数组。希望通过上面的操作能帮助大家。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有