Как 'numpy .reshape' и 'ndarray.reshape' эквивалентны? - PullRequest
2 голосов
/ 15 января 2020

У меня вопрос по структуре ndarray.reshape. Я прочитал, что numpy.reshape() и ndarray.reshape являются эквивалентными командами в python для изменения формы массива.

Насколько я знаю, numpy - это Объект , в котором определен reshape метод . Поэтому использование оператора точки в numpy.reshape() для меня понятно. Но когда дело доходит до ndarray.reshape, я не понимаю, как работает оператор точки. Нет ссылки на объект numpy в ndarray.reshape; как он узнает, что reshape связан с объектом numpy?

1 Ответ

2 голосов
/ 15 января 2020

Возможно, я что-то неправильно понимаю, но обычно numpy относится к фактическому Numpy модулю, и, вызывая numpy.reshape, вы вызываете функцию stati c, и вам также нужно передать массив в нее как первый аргумент, тогда как бит ndarray соответствует фактическому массиву numpy. Пример:

# import the module here
import numpy

# create an vector of 9 elements
arr = numpy.random.rand(1,9)

# and now I call the 'static' version of the reshape method:
arr2 = numpy.reshape(arr, (3,3))

# and here I just call the reshape method of the existing array
arr3 = arr.reshape((3,3))

По сути, эти две последние строки кода эквивалентны, поэтому arr2 и arr3 содержат один и тот же массив 3x3.

...