Я пытаюсь получить вектор определенных значений словаря, которые находятся в массиве numpy. Вот что массив выглядит следующим образом:.Получение вектора значений словаря в массиве, python
import numpy as np
edge_array = np.array(
[[1001, 7005, {'lanes': 9, 'length': 0.35, 'type': '99', 'modes': 'cw'}],
[1001, 8259, {'lanes': 10, 'length': 0.46, 'type': '99', 'modes': 'cw'}],
[1001, 14007, {'lanes': 7, 'length': 0.49, 'type': '99', 'modes': 'cw'}]])
У меня есть вектор для первых двух значений каждой строки (т.е. 1001
и 7005
, но мне нужен еще один вектор для значений, связанных с 'lanes'
Здесь мой код до сих пор:
row_idx = edge_array[:, 0]
col_idx = edge_array[:, 1]
lane_values = edge_array[:, 2['lanes']]
Я получаю ошибку выглядит следующим образом:
lane_values = edge_array[:, 2['lanes']]
TypeError: 'int' object has no attribute '__getitem__'
Пожалуйста, дайте мне знать, если вам нужно дальнейшее разъяснение, спасибо!
Обратите внимание, что 'dtype' этого массива является' object'. 'edge_array [:, 2]' функционально совпадает с списком словарей. Таким образом, вы должны использовать операции с списками (карта, понимание) для работы с отдельными словарями. – hpaulj