В чем разница между массивом ([array ([]), array ([])]) и array ([[], []])? - PullRequest
0 голосов
/ 01 ноября 2018

В чем разница между этими двумя массивами?

array([array([1,2,3]),array([4,5,6])])

и

array([[1,2,3],[4,5,6]])

Как мы можем преобразовать одно в другое?

Ответы [ 4 ]

0 голосов
/ 01 ноября 2018

Это просто эквивалентные способы создания массива.

Из документа в np.array :

numpy.array(object, ...

object : array_like

    An array, any object exposing the array interface, an object whose __array__ method returns an array, or any (nested) sequence

То, что вы передали, является правильным способом инициализации массива. Первый вариант - вложенная последовательность, второй - вложенный список.

.

0 голосов
/ 01 ноября 2018

Результат будет таким же, но стандарт, как правило, будет:

array([[1,2,3],[4,5,6]])
0 голосов
/ 01 ноября 2018

Согласно документам

numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

Параметры: object : array_like

  • Массив, любой объект, представляющий интерфейс массива, объект, чей array метод возвращает массив или любую (вложенную) последовательность.

Это означает использование:

array([array([1,2,3]),array([4,5,6])])

Просто избыточно для:

array([[1,2,3],[4,5,6]])

Поскольку Numpy принимает вложенные списки (массивы) и обрабатывает их соответствующим образом.

0 голосов
/ 01 ноября 2018

Результат такой же . Там нет необходимости ничего конвертировать:

A = np.array([np.array([1,2,3]), np.array([4,5,6])])
B = np.array([[1,2,3], [4,5,6]])

assert np.array_equal(A, B)
...