Python—Numpy学习笔记(六)array的合并

注:本系类笔记采用的是Python3.5X版本,编程环境为Windows64位下的Anaconda
所有代码部分均为连续的,“结果”为在jupyter分步运行结果

代码部分:

import numpy as np
arr1 = np.array([1,2,3])
arr2 = np.array([4,5,6])
arr3 = np.vstack((arr1,arr2))#垂直合并
print(arr3)
print(arr3.shape)

结果:(arr3编程一个二位矩阵)
[[1 2 3]
[4 5 6]]
(2, 3)

arr4 = np.hstack((arr1,arr2))#水平合并
print(arr4)
print(arr4.shape)

结果:
[1 2 3 4 5 6]
(6,)

arrv = np.vstack((arr1,arr2,arr3))#多个一起合并
print(arrv)

结果:
[[1 2 3]
[4 5 6]
[1 2 3]
[4 5 6]]

arrh = np.hstack((arr1,arr2,arr4))
print(arrh)

结果:
[1 2 3 4 5 6 1 2 3 4 5 6]

————————————————————————
以下是另外一种合并方式

arr = np.concatenate((arr1,arr2,arr1))
print(arr)

结果:
[1 2 3 4 5 6 1 2 3]

arr = np.concatenate((arr3,arrv),axis=0)#合并的array维度要相同,array形状要匹配,axis=0纵向合并(垂直)
print(arr)

结果:
[[1 2 3]
[4 5 6]
[1 2 3]
[4 5 6]
[1 2 3]
[4 5 6]]

arr = np.concatenate((arr3,arr3),axis=1)#合并的array维度要相同,array形状要匹配,axis=1横向合并
print(arr)

结果:
[[1 2 3 1 2 3]
[4 5 6 4 5 6]]

————————————————————————————
以下是一维arry的性质

arr1.T 
print(arr1.T) #一维的array不能转置

结果:
[1 2 3]

print(arr1.shape)

结果:
(3,)

arr1_1 = arr1[np.newaxis,:]#给一维数组的行加一个维度
print(arr1_1)
print(arr1_1.shape)

结果:
[[1 2 3]]
(1, 3)

print(arr1_1.T)

结果:
[[1]
[2]
[3]]

arr1_2 = arr1[:,np.newaxis]给一维数组的列加一个维度
print(arr1_2)
print(arr1_2.shape)

结果:
[[1]
[2]
[3]]
(3, 1)

arr1_3 = np.atleast_2d(arr1)
#判断arr1,如果小于2维,则变为2维数据,高维不影响
#还有atleast_3d同理,变三维
print(arr1_3)
print(arr1_3.T)

结果:
[[1 2 3]]
[[1]
[2]
[3]]

你可能感兴趣的:(Python—Numpy学习笔记(六)array的合并)