在人工智能领域,特别是在深度学习中会经常遇到数组需要切割或者拼接,python中处理数组分割与拼接的方法很多,本文将介绍使用numpy处理数组拼接与分割的几个函数。
1.数组的分割:
均等分割-numpy.split()
split(ary, indices_or_sections, axis=0)
参数:
ary:要切分的数组
indices_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭)
axis:沿着哪个维度进行切向,默认为0,横向切分。为1时,纵向切分
注意:如果根据提供的参数不能实现均等切分,会报错。
运行结果:
2.非均等分割-numpy.array_split()
参数:
ary:要切分的数组
indices_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭)
axis:沿着哪个维度进行切向,默认为0,横向切分。为1时,纵向切分
注意:若不能均等切分,不会报错,会根据如下规则切割:若设置数组分割个为n,长度为 L 的数组,前 L % n 个组的大小是 L // n + 1,剩下组的大小是 L // n。其中%表示取余, // 表示下取整。
运行结果:
3.数组的拼接-extend()
注意:该函数只适用于简单的一维数组拼接,且转换过程消耗时间长,对于大量数据的拼接不建议使用。
4.数组的拼接-numpy.append(arr, values, axis=None)
参数:一个数组和一个数值拼接,或者两个数组拼接,不能三个及以上数组拼接。
5.数组的拼接-numpy.concatenate((a1,a2,...), axis=0)
参数:
a1,a2……: 要拼接的数组
axis: 在哪个维度上进行拼接,默认为0
注意:concatenate() 和 append() 相比,concatenate()的效率更高,在机器学习中处理大量数组合并时,常用concatenate()
文章来源:https://mp.weixin.qq.com/s/HUdfJPnvwwAc6WDiyFqw1g