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的主要内容,如果未能解决你的问题,请参考以下文章

pandas基本介绍-老鱼学pandas

pandas合并merge-老鱼学pandas

matplotlib图例-老鱼学matplotlib

matplotlib柱状图-老鱼学matplotlib

tensorflow建造神经网络-老鱼学tensorflow

pandas画图-老鱼学pandas