为什么numpy中有些函数是np.ndarray的方法,有些是函数?

问题描述 投票:0回答:1

这是一个软问题,但我怀疑理解这一点将帮助我(也希望其他人)更好地理解

numpy
(我最近从 MATLAB 迁移)的哲学。

有些函数,如

sum
max
transpose
conjugate
等是
ndarray
类的方法,因此可以使用
arr.sum()
arr.sum(axis=1)
等。

但是,大多数函数都是模块

numpy
的函数,因此您需要像
numpy.count_nonzero(arr)
numpy.roll(arr)
等那样调用它们。其中许多方法只接受单个
ndarray
对象作为输入,因此可以考虑它们,就设计而言,作为数组本身的属性。

这个设计选择背后的逻辑是什么?

numpy
1个回答
1
投票

我最初认为有一些基本原则、基本真理。我猜想,一旦掌握了这个真理,我对 NumPy、Python 甚至生活本身的理解就会得到扩展和澄清。唉,看了评论才发现,这只是一个补丁上的一个补丁上一个计划外的补丁,没有组织原则,没有指导方案。这仅仅是宇宙随机性的产物,而我们都是宇宙随机性的奴隶。

© www.soinside.com 2019 - 2024. All rights reserved.