目录
np.hstack()
例子:
np.hsplit()
例子:
下面用split()重点讲下 indices_or_sections的用法
例子:
np.hstack()
首先,hstack在tensorflow的是数据操作中经常用到,用来对自定义数据进行堆叠的reshape操作
官方文档如上
翻译:“按水平顺序堆叠数组(按列排列)。这相当于沿着第二个轴(x轴)进行连接,除了一维数组是沿着第一个轴(y轴)进行连接。重新构建被hsplit分割的数组。”
来看下参数:
可以传入单个和多个序列
例子:
挺简单的,就是在每一水平方向上(每一行)把不同的元素连接在一起
对于python list类型使用hstack的效果只是起到转化为ndarray的作用
np.hsplit()
很明显就是在水平方向做分割,父类函数肯定是split
例子:
#较低维的数组>>> x = np.arange(16.0).reshape(4, 4)
>>> x
array([[ 0., 1., 2., 3.],[ 4., 5., 6., 7.],[ 8., 9., 10., 11.],[12., 13., 14., 15.]])
>>> np.hsplit(x, 2)
[array([[ 0., 1.],[ 4., 5.],[ 8., 9.],[12., 13.]]),array([[ 2., 3.],[ 6., 7.],[10., 11.],[14., 15.]])]# 这种情况split会说
>>> np.hsplit(x, np.array([3, 6]))
[array([[ 0., 1., 2.],[ 4., 5., 6.],[ 8., 9., 10.],[12., 13., 14.]]),array([[ 3.],[ 7.],[11.],[15.]]),array([], shape=(4, 0), dtype=float64)]# 高维数组也一样(可以理解为降维到2维情况再处理,见下图)
# With a higher dimensional array the split is still along the second axis.
>>> x = np.arange(8.0).reshape(2, 2, 2)
>>> x
array([[[0., 1.],[2., 3.]],[[4., 5.],[6., 7.]]])
>>> np.hsplit(x, 2)
[array([[[0., 1.]],[[4., 5.]]]),array([[[2., 3.]],[[6., 7.]]])]
上面例子高维数组的情况:
下面用split()重点讲下 indices_or_sections的用法
1.如果只传入一个整数值,那么就是沿着第三个参数axis指定的方向去平均的切开数组(奇数列,奇数行的情况见下)
2.如果传入的是一个一维数组或者sorted integer(排序后的整数),,这两个是等价的,会按照分片的法则进行分片
例子:
>>> x = np.arange(9.0)
>>> np.split(x, 3)
[array([0., 1., 2.]), array([3., 4., 5.]), array([6., 7., 8.])]>>>
>>> x = np.arange(8.0)
>>> np.split(x, [3, 5, 6, 10])
[array([0., 1., 2.]),array([3., 4.]),array([5.]),array([6., 7.]),array([], dtype=float64)]