numpy的array合并-老鱼学numpy
Posted 曾想技术改变世界,不料世界改变了我们
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]]
以上是关于numpy的array合并-老鱼学numpy的主要内容,如果未能解决你的问题,请参考以下文章