Ответы:
numpy.arrayэто просто удобная функция для создания ndarray; это не сам класс.
Вы также можете создать массив с помощью numpy.ndarray, но это не рекомендуемый способ. Из документации numpy.ndarray:
Массивы должны быть созданы с использованием
array,zerosилиempty... Параметры, приведенные здесь, относятся к низкоуровневому методу (ndarray(...)) для создания экземпляра массива.
Большая часть реализации реализована в коде на C, здесь - в нескольких массивах , но вы можете посмотреть на интерфейсы ndarray здесь:
https://github.com/numpy/numpy/blob/master/numpy/core/numeric.py
np.arrayэто не класс, как я часто это делаю. x = np.array([1,2.1,3]) if isinstance(x,np.array): # will give you a TypeError
array_getarrayэто реализация numpy.ndarray.__array__. numpy.arrayначинается _array_fromobject, по крайней мере, в текущей реализации.
numpy.arrayэто функция, которая возвращает numpy.ndarray. Нет типа объекта numpy.array.
Всего несколько строк примера кода, чтобы показать разницу между numpy.array и numpy.ndarray
Шаг разогрева: составить список
a = [1,2,3]
Проверьте тип
print(type(a))
Ты получишь
<class 'list'>
Построить массив (из списка), используя np.array
a = np.array(a)
Или, вы можете пропустить шаг разогрева, прямо
a = np.array([1,2,3])
Проверьте тип
print(type(a))
Ты получишь
<class 'numpy.ndarray'>
который говорит вам, что тип массива numpy - numpy.ndarray
Вы также можете проверить тип по
isinstance(a, (np.ndarray))
и вы получите
True
Любая из следующих двух строк выдаст вам сообщение об ошибке
np.ndarray(a) # should be np.array(a)
isinstance(a, (np.array)) # should be isinstance(a, (np.ndarray))
numpy.ndarray()класс, а numpy.array()метод / функция для создания ndarray.
В numy docs, если вы хотите создать массив из ndarrayкласса, вы можете сделать это двумя способами, как указано:
1- используя array(), zeros()или empty()методы:
Массивы должны быть построены с использованием массива, нули или пустые (см также раздел ниже). Параметры, приведенные здесь, относятся к низкоуровневому методу ( ndarray(…)) для создания экземпляра массива.
2 - ndarrayнепосредственно из класса:
существует два режима создания массива с использованием __new__: Если для буфера задано None, то используются только shape, dtype и order. Если буфер является объектом, представляющим интерфейс буфера, то все ключевые слова интерпретируются.
Пример ниже дает случайный массив, потому что мы не присваивали значение буфера:
np.ndarray(shape=(2,2), dtype=float, order='F', buffer=None) array([[ -1.13698227e+002, 4.25087011e-303], [ 2.88528414e-306, 3.27025015e-309]]) #random
Другой пример - присвоить объект массива примеру буфера:
>>> np.ndarray((2,), buffer=np.array([1,2,3]), ... offset=np.int_().itemsize, ... dtype=int) # offset = 1*itemsize, i.e. skip first element array([2, 3])
из приведенного выше примера мы заметили, что мы не можем присвоить список «буферу», и нам пришлось использовать numpy.array (), чтобы вернуть объект ndarray для буфера
Вывод: используйте, numpy.array()если хотите сделать numpy.ndarray()объект "
Я думаю, что с np.array()вами можно создать только C, как вы упомянули порядок, когда вы проверяете, используя np.isfortran()это говорит false. но с np.ndarrray()указанием порядка, который он создает на основе предоставленного заказа.