Как из двух массивов сделать двумерный python
Перейти к содержимому

Как из двух массивов сделать двумерный python

Объединение двух одномерных массивов разных типов данных в один двумерный массив в PYTHON

У меня есть 2 списка номеров: а и б. A — это список номеров узлов с типом integer, а b — это список координат X с типом float64. Я хочу объединить эти 2 массива равной длины (N) в массив Nx2, который сохраняет типы данных. Я использую этот массив позже в некоторых логических тестах, поэтому мне нужно, чтобы первый столбец был целым числом. Я использовал:

Но, очевидно, это превращает все в числа с плавающей точкой.

4 ответа

Один из способов достижения вашей цели — использовать numpy dtype , как описано в http://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html

Функция zip — самый простой способ. Краткий пример:

Если вы хотите получить a из zip(a,b) , просто напишите:

Хорошая идея — сделать словарь из двух списков:

Но будьте осторожны, порядок в словаре не сохраняется. Доступ к данным из словаря очень прост:

Я предполагаю, потому что вы упомянули 2D-список в заголовке, что вам нужен список, подобный приведенному ниже, где каждый узел и координата имеют свой тип:

Вы можете сделать это в три быстрых строки без каких-либо модулей, сохраняя тип каждой переменной:

Таким образом, у вас будет 2D список. Каждый элемент в 2D-списке сам по себе будет другим списком, содержащим пару узла и координату. Поскольку Python нечувствителен к типу, тип вашего узла и вашей координаты будет сохранен. Вы получите доступ к каждой паре с:

И их содержимое с:

Надеюсь, это поможет. 🙂

Вы можете использовать zip () здесь. Если вы просто сравните элемент списка a, то в чем здесь проблема?

Двумерный массив в Python

Array — это в основном структура данных, в которой данные хранятся линейно. В Python нет эксклюзивного объекта массива, потому что пользователь может выполнять все операции с массивом, используя список.

Итак, Python выполняет все операции, связанные с массивами, с помощью объекта списка. Массив в Python представляет собой упорядоченный набор элементов в последовательном порядке.

Синтаксис объявления массива:

Двумерные массивы — это в основном массивы внутри массивов. Здесь позиция элемента данных доступна с помощью двух индексов. Он представлен в виде таблицы rows and columns элементов данных.

Объявление двумерного массива

array-name = [ [d1, d2, . dn], [e1, e2, . en] ]

вывод 2D массива

Вход в двумерный массив предоставляется в виде строк и столбцов.

ввод и вывод 2D массива

Insert

Элементы в 2D-массив могут быть вставлены с помощью функции insert() указывающей индекс и позицию вставляемого элемента.

вставка в 2D массив

Как обновить элементы в двумерном массиве?

Элементы могут быть обновлены, а значения могут быть изменены путем переназначения значений с использованием индекса массива.

обновление элементов

Как удалить значения?

Элементы из двумерного массива можно удалить с помощью метода del() .

del удаление

Размер или длина

Длину массива можно определить с помощью метода len() .

Добавление

Элементы могут быть добавлены к массиву с помощью метода append() . Элемент добавляется в конец массива.

добавление через append

Нарезка

Нарезка массива используется для доступа к нескольким значениям в массиве.

Как создать из двух или более массивов-списков один многомерный массив

На вход я получаю несколько массивов(всегда одномерных).

После должен получить:

Решение должно быть универсальным, на вход буду получать от одного до 5 массивов.

Не скажу, что это на 100% универсальное решение, но можно и так:

user avatar

Самое простое и короткое решение:

Большое преимущество: почти при любом количестве массивов можно уложиться в одну строку, просто перечислив имена массивов через запятую. А у ответа, который сказал @ganz, придётся делать столько строк с append -ами.

user avatar

Создаём пустой список и добавляем в него списки как элементы

Второй вариант, как видно много проще, то есть в ручную создаётся итоговый список. Из недостатков- нужно в ручную писать все имена переменных, из достоинств имена переменных могут быть безсистемны

Данный пример добавляет в итоговый список до 26 переменных, имена которых есть латинские буквы в нижнем регистре. Имеет следующие недостатки: пропускать переменные в данном виде нельзя так как будет исключение.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *