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]]
posted @ 2017-11-16 09:49  dreampursuer  阅读(1032)  评论(0编辑  收藏  举报