其他分享
首页 > 其他分享> > 数组形状操作

数组形状操作

作者:互联网

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好像是复制了数组的指针

数组叠加

  1. vstack 垂直方向的叠加
    两个数组要列相同,列不相同会报错
    shape x:(X,A)、y:(Y,A)
    用法:
vstack1=np.vstack([x,y])#y拼接在了x的下面
vstack1=np.concatenate([x,y],axis=0)
  1. hstack 水平方向叠加
    数组行要相同,行不相同会报错
    shape x:(B,X)、y:(B,Y)

用法:

hstack1=np.hstack([x,y])#y拼接在了x的右面
vstack1=np.concatenate([x,y],axis=1)
  1. concatenate([数组],axis)
    axis=0:垂直方向叠加,vstack(代码见vstack代码块)
    axis=1:水平方向叠加,hstack(代码见hstack代码块)
    axis=None:把两个数组拼接成一个一维数组(先扁平化),这里的数组不用管shape

切割

标签:hstack,a1,np,形状,数组,print,操作,axis
来源: https://blog.csdn.net/qq_45689940/article/details/120930256