关于numpy.size方法“套娃”一事的探索研究

关于np.size函数的研究

事情的经过是这样的。
我想判断numpy生成的一组array数组的大小,我就想着看能不能找到一个np.size()函数来应用。结果通过查阅文档发现numpy中拥有size()方法的由很多种,如numpy.ma.size(),numpy.ndarray.size(),numpy.generic.size(), numpy.matrix.size()
等等,可就是没有numpy.size(),这就让人很难受的了,而且在doc里面没有找到就算了,可是这个numpy.size()竟然可以使用。

既然numpy.size()可以使用,那么我就去找它的源文档,按ctrl+右键发现size无法转到定义,numpy的__init__.py文件也没有找到size方法。

通过 dir(numpy)可以发现是由size方法的,但是为什么转不到定义不太清楚,那我就找一个可以转到的呗,我发现numpy.insert()可以转到定义,出现一个__init__.pyi文件,在这里我找到了size方法的来源,from numpy.core.fromnumeric import {………size………},原来size是从fromumeric这个模块来的,那我在点进去看,里面清清楚楚的定义这size函数,到此就发现了,原来numpy.size函数是从其他模块导进来直接使用的。

反过来,我又去查询numpy.ma.size方法的定义,好家伙,直接跳到core.size的定义上了,而core.size最有趣的是,直接return np.size,这下我明白了,其实他们一直在套娃,套的都是core.fromnumeric的娃。

但是这个core.fromnumeric在doc文档中也不会具体给出什么,仿佛其就是底层一样,被上层任意调用即可,就算解释也只是解释上层调用函数的使用方法。

初学,不是很懂这样设计的优点,但是确实容易头大,本来numpy.size()确实能搞定,但是doc中又不给出这样的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值