我一直在使用科学
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风格的工作.