concatenate()
我们先来介绍最全能的concatenate()函数,后面的几个函数其实都可以用concatenate()函数来进行等价操作。
concatenate()函数根据指定的维度,对一个元组、列表中的list或者ndarray进行连接,函数原型:
numpy.concatenate((a1, a2, ...), axis=0)
先来看几个例子,一个2*2的数组和一个1*2的数组,在第0维进行拼接,得到一个3*2的数组:
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
np.concatenate((a, b), axis=0)
输出为:
array([[1, 2],
[3, 4],
[5, 6]])
进一步,一个2*2的数组和一个2*1的数组,在第01维进行拼接,得到一个2*3的数组:
np.concatenate((a, b.T), axis=1)
输出为:
array([[1, 2, 5],
[3, 4, 6]])
上面两个简单的例子中,拼接的维度的长度是不同的,但是其他维度的长度必须是相同的,这也是使用concatenate()函数的一个基本原则,违背此规则就会报错,例如一个2*2的数组和一个1*2的数组,在第1维进行拼接:
np.concatenate((a, b), axis=1)
上面的代码会报错:
ValueError: all the input array dimensions except for the concatenation axis must match exactly
如果拼接的数组是一维数组,则axis只能为0,因为若两个一维数组的shape为(n1,),(n2,), 拼接之后为(n1+n2,)。由于第二维没有长度,所以也就不存在axis=1了
作者:文哥的学习日记
链接:https://www.jianshu.com/p/cfe655cb5dd6
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
作者:文哥的学习日记
链接:https://www.jianshu.com/p/cfe655cb5dd6
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。