numpy的array合并-【老鱼学numpy】
概述
本节主要讲述如何把两个数组按照行或列进行合并。
按行进行上下合并
例如:
import numpy as np
a = np.array([1, 1, 1])
b = np.array([2, 2, 2])
print(np.vstack((a, b)))
合并后输出结果为:
[[1 1 1]
[2 2 2]]
按列左右合并
import numpy as np
a = np.array([1, 1, 1])
b = np.array([2, 2, 2])
print(np.hstack((a, b)))
左右合并后,输出为:
[1 1 1 2 2 2]
使用concatenate合并
import numpy as np
a = np.arange(9).reshape(3,3)
print("a=")
print(a)
b = 2 * a
print("b=")
print(b)
print("a和b垂直合并:")
print(np.concatenate((a, b), axis=0))
print("a和b水平合并:")
print(np.concatenate((a, b), axis=1))
输出为:
a=
[[0 1 2]
[3 4 5]
[6 7 8]]
b=
[[ 0 2 4]
[ 6 8 10]
[12 14 16]]
a和b垂直合并:
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 0 2 4]
[ 6 8 10]
[12 14 16]]
a和b水平合并:
[[ 0 1 2 0 2 4]
[ 3 4 5 6 8 10]
[ 6 7 8 12 14 16]]
添加维度
比如,我们有一个一维的数组,现在我们想要对这个一维数组增加一个维度,变成2维数组,该怎么做呢?
例如:[1, 2, 3]是一个一维数组,我们想把它变成2维数组:[[1, 2, 3]],其形状为1行3列的数据。
具体做法是使用np.newaxis:
import numpy as np
a = np.array([1, 2, 3])
print(a[np.newaxis, :])
输出为:
[[1 2 3]]
同理,如果想增加列的维度,使其变成3行1列的数据,具体操作为:
import numpy as np
a = np.array([1, 2, 3])
print(a[:, np.newaxis])
输出为:
[[1]
[2]
[3]]
作者:dreampursuer(公众号:独立开发者手记)
出处:http://www.cnblogs.com/dreampursuer/
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/dreampursuer/
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。