numable преобразовать вектор строки в вектор столбца

matrix1 = np.array([[1,2,3],[4,5,6]]) vector1 = matrix1[:,0] # this should have shape (2,1) but actually has (2,) matrix2 = np.array([[2,3],[5,6]]) np.hstack((vector1, matrix2)) ValueError: all the input arrays must have same number of dimensions 

Проблема в том, что, когда я выбираю первый столбец матрицы1 и помещаю его в vector1, он преобразуется в вектор строки, поэтому, когда я пытаюсь объединить матрицу2, я получаю ошибку измерения. Я мог бы это сделать.

 np.hstack((vector1.reshape(matrix2.shape[0],1), matrix2)) 

Но это выглядит слишком уродливо для меня делать каждый раз, когда мне приходится конкатенировать матрицу и вектор. Есть ли более простой способ сделать это?

  • Единичное тестирование Django JSON View
  • Django - не удается загрузить статические файлы CSS
  • Извлечь имя ключа из одного элемента в Python
  • Хороший алгоритм обхода графа
  • Определить повторяющиеся значения в списке в Python
  • Пути Unix: официально работайте в Python для любой платформы?
  • feedparser выходит из строя во время запуска скрипта, но не может воспроизводиться в интерактивной консоли python
  • Как я могу упаковать приложение python с помощью внешних библиотек python?
  • 2 Solutions collect form web for “numable преобразовать вектор строки в вектор столбца”

    Более простой способ

     vector1 = matrix1[:,0:1] 

    По этой причине позвольте мне направить вас к другому моему ответу :

    Когда вы пишете что-то вроде a[4] , это доступ к пятому элементу массива, не давая вам взглянуть на какой-либо раздел исходного массива. Так, например, если a – массив чисел, тогда a[4] будет просто числом. Если a – это двумерный массив, то есть эффективно массив массивов, то a[4] будет одномерным массивом. В принципе, операция доступа к элементу массива возвращает что-то с размерностью на один меньше, чем исходный массив.

    Вот еще три варианта:

    1. Вы можете немного убрать свое решение, позволяя неявно задавать размер строки вектора:

       np.hstack((vector1.reshape(-1, 1), matrix2)) 
    2. Вы можете индексировать с помощью np.newaxis (или, что эквивалентно, None ), чтобы вставить новую ось размера 1:

       np.hstack((vector1[:, np.newaxis], matrix2)) np.hstack((vector1[:, None], matrix2)) 
    3. Вы можете использовать np.matrix , для которого индексирование столбца с целым числом всегда возвращает вектор столбца:

       matrix1 = np.matrix([[1, 2, 3],[4, 5, 6]]) vector1 = matrix1[:, 0] matrix2 = np.matrix([[2, 3], [5, 6]]) np.hstack((vector1, matrix2)) 
    Interesting Posts

    Запросы с несколькими соединениями

    Какой язык программирования или библиотека могут обрабатывать Infinite Series?

    Подпроцесс Python и взаимодействие с пользователем

    Короткий алфавитно-цифровой хэш-код Python с минимальными коллизиями

    конвертировать список разделенных строк в дерево / вложенный dict, используя python

    Вложение участка Bokeh в сайт Django приводит к пустой странице без сообщения об ошибке

    Использование нескольких баз данных Django с RedShift

    присвоение точек ячейкам

    Получить длину списка в шаблоне jinja2

    В чем разница между Model.query и session.query (Model) в SQLAlchemy?

    Есть ли рекомендованный пакет для машинного обучения в Python?

    Более быстрый способ чтения пикселя экрана в Python, чем PIL?

    Запрос базы данных Django: как фильтровать объекты по диапазону дат?

    MySQLdb для Python не может найти libmysqlclient.dylib с Homebrewed MySQL

    Получение сокета Python – входящие пакеты всегда имеют разный размер

    Python - лучший язык программирования в мире.