为什么np.resize()out_place,而ndarray.resize()in_place?

Chr*_*ris 6 python numpy class

根据我的理解,有了课程 instance.method(parameters)=class.method(instance,parameters),所以这只是一个符号差异.但是np.resize(ndarray)改变out_place,而ndarray.resize()改变in_place.

我错过了什么?

jua*_*aga 3

是的,但numpy不是,而是模块。你想要numpy.ndarray作为班级。观察:

In [1]: import numpy as np

In [2]: arr = np.array([1,2,3])

In [3]: np.ndarray.resize(arr, (3,1))

In [4]: arr
Out[4]:
array([[1],
       [2],
       [3]])
In [5]: np.ndarray.resize(arr, (3,))

In [6]: arr
Out[6]: array([1, 2, 3])
Run Code Online (Sandbox Code Playgroud)

因此,numpy.resize它只是一个模块级函数,它返回一个新数组,而不是就地修改数组。