NumPy基础-子类化ndarray

子类化的ndarray相对简单,但是与其它Python对象相比,它却更复杂一点。

ndarrays和对象创建

ndarray的子类化很复杂,因为ndarray类的新实例可以通过三种不同的方式产生。
1.显示的构造函数调用在MySubClass(params),这是创建Pythton实例的常用方法。
2.视图转换,将现有的ndarray转换为给定的子类
3.模板新功能,从模板实例创建新实例,包括从子类化的数组返回切片,从ufunc创建返回类型以及复制数组。
最后两个是ndarray的特性-为了支持数组切片之类的功能。子类化ndarray的复杂性是由于NumPy必须支持后两种实例创建路径的机制。

视图转换

视图强制转换是标准的ndarray机制,通过这种机制,我们可以获取任何子类的ndarray,并返回数组的视图作为另一个(指定的)子类。
在这里插入图片描述

从模板创建新的

当NumPy发现它需要从模板实例创建一个新实例时,ndarray子类的新实例也可以通过与查看类型转换非常相似的机制来实现,这种情况最明显的地方是在获取子类数组的切片时。
在这里插入图片描述
切片是原始c_arr数据的视图,因此,当我们从ndarray中获取一个视图时,我们返回一个新的ndarray,它属于同一个类,指向原始

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值