2016-06-17 3 views
1

За Numpy массива я обнаружил, чтоперепрофилирования Numpy Массивы в многомерном массиве

x = numpy.array([]).reshape(0,4) 

хорошо и позволяет мне добавить (0,4) массивы х без массива теряет свою структуру (т.е. dosnt просто перечислите числа). Однако, когда я пытаюсь

x = numpy.array([]).reshape(2,3) 

оно выдает сообщение об ошибке. Почему это?

+0

Добавлять '(2,3)' массивы вдоль какой оси? Используйте образцы массивов, чтобы продемонстрировать, что вы имеете в виду? – Divakar

+0

Не обращайте внимания на это, просто хочу знать, почему numpy.array ([]). Reshape (2,3) выдает ошибку – Sruli

+0

'numpy.array ([]). Reshape (2,3)' выдает ошибку, потому что 'numpy. array ([]) 'имеет нулевые элементы, поэтому вы не можете изменить его на' (2,3) ', который ожидает общие элементы' 6'. – Divakar

ответ

0

reshape не является функцией «добавить». Он преобразует массив, который вы даете ему, в нужные размеры.

np.array([]).reshape(0,4) работает, потому что вы преобразовываете массив нулевых элементов в массив 0x4 (= 0 элементов).
np.reshape([]).reshape(2,3) не работает, потому что вы пытаетесь преобразовать массив нулевых элементов в массив 2x3 (= 6 элементов).

Чтобы создать пустой массив, используйте вместо этого np.zeros((2,3)).

И в случае, если вам интересно, массивы numpy не могут быть добавлены. Вам придется работать, выставляя его как list, добавляя то, что вы хотите, и преобразовываете обратно в массив numpy. Предпочтительно, вы создаете массив numpy, когда не собираетесь добавлять данные позже.

1

Этот вывод будет объяснить, что это значит, чтобы изменить массив ...

np.array([2, 3, 4, 5, 6, 7]).reshape(2, 3) 

Выход -

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

Так перестройка просто означает перестройки массива. reshape (0, 4) означает преобразование текущего массива в формат с 0 строками и 4 столбцами интуитивно. Но 0 строк означает, что нет элементов, поэтому он работает так, как ваш массив пуст. Аналогично (2, 3) означает 2 строки и 3 столбца, которые являются 6 элементами ...

Смежные вопросы