c++数组存放几个子类_Numpy 数组shape改变

numpy中改变常见的几个函数:np.expand_dims, np.squeeze. ,np.reshape。

np.expand_dims():扩展数组的轴,在指定的结果位置插入一个或者多个新轴。

参数axis:代表扩展后的array维度,而不是输入array。

输出:输入数组的视图。

效果等价于在指定位置插入新的索引:np.newaxis或者None。

b43ab294f4b76c5a5932436beb1cdace.png

736aa6dabcf299ab381c0976ec544a8f.png

4a4a8304314fba5401b76338542429c3.png

6a9d4da02e2768d5e77226899571288a.png

np.squeeze():缩小数组的shape

参数axis=None时,删除输入数组的全部大小为1的维度(轴),不为None时删除指定轴(前提是当前轴的维度大小=1)。

1958e88816939c7569cb85dab3e3b723.png

30a9c7d7e2814b9f0fa4aed59df8bb89.png

np.reshape(a, newshape, order='C'):固定数组元素值不变,改变数组的shape

在不改变数据的情况下,通过指定新shape,改变数据分布,即可能增加轴,也可能减少轴。

5d3705979173a92727189f1b8d77852a.png

fabe811603809036bb1875809f0f4bf2.png

c83e3683f249c528205e8994482e6be7.png

补充知识点:numpy中的copy和view不同返回机制:

(1)python中变量数据存储在计算机的一段连续(也可以通过指针串联,非连续存放)内存空间中,而变量实际存储的是这一段连续内存空间的首地址,即知道了内存首地址就能获取到变量的值,numpy的array是一种特殊的变量。

(2)比如"a=b;"这个语句,如果是copy机制则说明a和b的首地址不一样,a和b的数据存放在两个不同的内存空间,如果是view机制则说明a和b的首地址是一样的,a和b互为对方的别名而已,本质是同一个,改变其中一个,另一个也随之改变。

(3)view机制比copy机制能节省内存空间,因为不需要额外开辟相同的数据存放内存空间。

numpy中,shape的改变非常常见,需要根据需要动态改变shape,增加或者减少轴。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值