目录
下面用split()重点讲下 indices_or_sections的用法
np.hstack()
首先,hstack在tensorflow的是数据操作中经常用到,用来对自定义数据进行堆叠的reshape操作
官方文档如上
翻译:“按水平顺序堆叠数组(按列排列)。这相当于沿着第二个轴(x轴)进行连接,除了一维数组是沿着第一个轴(y轴)进行连接。重新构建被hsplit分割的数组。”
扫描二维码关注公众号,回复:
12899487 查看本文章
来看下参数:
可以传入单个和多个序列
例子:
挺简单的,就是在每一水平方向上(每一行)把不同的元素连接在一起
对于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)]