【发布时间】:2020-01-15 15:21:57
【问题描述】:
我对@987654321@ 的结构有疑问。我读过numpy.reshape() 和ndarray.reshape 是python 中用于重塑数组的等效命令。
据我所知,numpy 是一个 Object,其中定义了reshape method。所以numpy.reshape() 中点运算符的使用对我来说是可以理解的。但是说到ndarray.reshape,我不明白点运算符是如何工作的。 ndarray.reshape 中没有对 numpy 对象的引用;它怎么知道reshape和numpy对象相关?
【问题讨论】:
-
在
numpy.reshape中,reshape是numpy模块中的一个函数。在arr.reshape(其中arr是numpy.ndarray)中,reshape是ndarray类的方法。从技术上讲,dot的两种用法都定义了一个命名空间,但函数和方法之间的区别是 Python 的基础。 -
感谢您提供有用的信息。考虑:
b=np.arange(6).reshape(3,2)。因此,在这一行中,np.arange(6)部分创建了一个对象,该对象被馈送到下一个方法reshape(3,2)? -
是的。
arange是np模块中的一个函数。reshape是由arange调用创建的对象的方法。结果是一个新的数组对象。分配给b。