注:本系类笔记采用的是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]]