python – 与Numpy对象交互的“正确”方式

我一直在使用科学
python(来自pylab import *)一段时间作为免费的Matlab替代品,主要用于化学工程(我是I
Python Notebook的粉丝).对我来说总是显得很奇怪的事实是,通常有两种不同的方式与对象进行交互.例如,如果我有一个数组,我可以通过两种方式告诉它的维度:

a =数组([1,2,3],[2,3,4])

有’Matlab’的方式:

形状(a)中

或者我可以通过输入以下内容找到它:

一个形状

这似乎与Python的禅宗相矛盾:“应该有一个 – 最好只有一个 – 明显的做法”

我只是想知道为什么有多种方法可以做同样的事情,哪种做法对语言来说更基本/更自然,从长远来看会更好用.

最佳答案 使用该方法是优选的.毕竟,形状的实现完全按照方法推荐(来自/numpy/core/fromnumeric.py):

def shape(a):
    try:
        result = a.shape
    except AttributeError:
        result = asarray(a).shape
    return result

我假设其中包含了很多这样的pylab内容,以帮助缓解来自MATLAB的人员的过渡.习惯它,因为有更多的numpy存在的例子,咳咳,不是非常pythonic.

当你越来越习惯python和matplotlib时,你可能会想放弃pylab import *,并开始编写更多的numpythonic代码,而不是MATLAB风格的工作.

点赞