reshape、resize:
修改数组形状
reshape:返回修改结果
resize:直接在原数组内修改,不返回任何结果
flatten、revel
降维,把数组降成1维度
两个方法都不会直接在原数组内修改
不同在于返回值的拷贝问题
a=np.random.randint(1,9,(3,8))
print(a)
a1=a.flatten()
print(a1)
a1[0]=199
print(a)#a不发生任何变化
a=np.random.randint(1,9,(3,8))
print(a)
a1=a.ravel()
print(a1)
a1[0]=199
print(a)#a1中的第一个元素也就是a中的第一个元素被修改成199
flatten好像是复制数组到一块新内存
ravel好像是复制了数组的指针
数组叠加
- vstack 垂直方向的叠加
两个数组要列相同,列不相同会报错
shape x:(X,A)、y:(Y,A)
用法:
vstack1=np.vstack([x,y])#y拼接在了x的下面
vstack1=np.concatenate([x,y],axis=0)
- hstack 水平方向叠加
数组行要相同,行不相同会报错
shape x:(B,X)、y:(B,Y)
用法:
hstack1=np.hstack([x,y])#y拼接在了x的右面
vstack1=np.concatenate([x,y],axis=1)
- concatenate([数组],axis)
axis=0:垂直方向叠加,vstack(代码见vstack代码块)
axis=1:水平方向叠加,hstack(代码见hstack代码块)
axis=None:把两个数组拼接成一个一维数组(先扁平化),这里的数组不用管shape。
切割