目录
直接拼接:
import numpy as np
if __name__ == '__main__':
ls = []
c = np.array([10, 20, 30])
d = np.array([100, 200, 300])
d1 = np.row_stack((c, d))
d2 = np.vstack((c, d))
print(d1)
print(d2)
annotations = np.append(annotations, annotation, axis=0)
append也可以,row_stack和vstack更直接。
借助list拼接方法:
import numpy as np
if __name__ == '__main__':
ls = []
c = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
d = np.array([100, 200, 300])
for i in c:
q = np.row_stack((i, d))
ls.append(q)
arr7 = np.array(ls)
print(arr7)
需要注意的地方:
如果a,b数据类型不一样,拼接后,数据类型会改为一样的
但是list可以允许数据类型不一样。
>>> a
array([0, 1, 2],
[3, 4, 5],
[6, 7, 8])
>>> b = a*2
>>> b
array([ 0, 2, 4],
[ 6, 8, 10],
[12, 14, 16])
1.水平组合
>>> np.hstack((a,b))
array([ 0, 1, 2, 0, 2, 4],
[ 3, 4, 5, 6, 8, 10],
[ 6, 7, 8, 12, 14, 16])
>>> np.concatenate((a,b),axis=1)
array([ 0, 1, 2, 0, 2, 4],
[ 3, 4, 5, 6, 8, 10],
[ 6, 7, 8, 12, 14, 16])
2.垂直组合
>>> np.vstack((a,b))
array([ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 0, 2, 4],
[ 6, 8, 10],
[12, 14, 16])
>>> np.concatenate((a,b),axis=0)
array([ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 0, 2, 4],
[ 6, 8, 10],
[12, 14, 16])