这是一个软问题,但我怀疑理解这一点将帮助我(也希望其他人)更好地理解numpy(我最近从 MATLAB 迁移)的哲学。
有些函数,如sum、max、transpose等conjugate是类的方法ndarray,因此可以使用arr.sum()、arr.sum(axis=1)等。
不过,大多数函数都是模块的函数numpy,因此您需要像numpy.count_nonzero(arr)、 或numpy.roll(arr)等那样调用它们。其中许多方法仅将单个ndarray对象作为输入,因此在设计方面可以将它们视为数组本身的属性。
这种设计选择背后的逻辑是什么?
我回复评论(谢谢!):
我最初认为有一些基本原则、基本真理。我猜想,一旦掌握了这个真理,我对 NumPy、Python 甚至生活本身的理解就会得到扩展和澄清。唉,事实证明,这只是一个计划外的补丁上的补丁,没有组织原则,没有指导方案:仅仅是宇宙随机性的产物,而我们都是宇宙随机性的奴隶。
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |