6th_numpy array的合并 np.vstack np.concatenate np.newaxis

内容来源于up主莫烦的视频
https://www.bilibili.com/video/BV1Ex411L7oT?p=9

import numpy as np
"""
1.vstack,hstack 合并一维array至二维
1) c = np.vstack((a,b)) v 是 vertical 垂直方向合并
参数为一项 (a,b)
[[1 1 1]
[2 2 2]]
2) d = np.hstack((a,b)) h 是 horizontal 水平方向合并
参数为一项 (a,b)
[1 1 1 2 2 2]

2. 在array中插入新的维度 np.newaxis
1)# 将 array 从 (3) -> (3,1)
a = a[:,np.newaxis]
[[1]
[1]
[1]]
2) 将array 从(3)变成(1,1,3)
print(a[np.newaxis,:][np.newaxis,:])
[[[1 1 1]]]

3. 将array在指定方向合并
1) 在列方向合并
e = np.concatenate((a,b,b,a),axis=1)
[[1 2 2 1]
[1 2 2 1]
[1 2 2 1]]


"""
a = np.array([1,1,1])
b = np.array([2,2,2])

#上下合并 vertical stack 到列方向
c = np.vstack((a,b))
print(np.vstack((a,b)))

# 左右合并 到行方向
d = np.hstack((a,b))
print(d)

# 这里不能把一维数列变成二维矩阵
print(a.T)

# 这里转置可以用reshape
print(a.reshape(3,1 ))
print('@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@')
print(a[:,np.newaxis])
print(a[np.newaxis,:][np.newaxis,:])
a = a[:,np.newaxis]
b = b[:,np.newaxis]
print(a,b)
e = np.concatenate((a,b,b,a),axis=1)
print(e)

猜你喜欢

转载自www.cnblogs.com/ChevisZhang/p/12909802.html