Изменение формата данных в Python ⇐ Python
-
Anonymous
Изменение формата данных в Python
У меня есть строка A. Я хочу преобразовать в массив, но столкнулся с ошибкой. Я представляю текущие и ожидаемые результаты.
импортировать ast импортировать numpy как np A = '\n[array([[[ 0, 22],\n [ 0, 23]]], dtype=int64)]' # Удалите ненужные символы и исправьте dtype A_cleaned = A.replace('\n', '').replace('dtype=int64', '').strip() # Извлекаем содержимое внутри крайних скобок start_idx = A_cleaned.find('[') end_idx = A_cleaned.rfind(']') внутренний_список_стр = A_cleaned[start_idx:end_idx+1] # Замените «array» на «np.array» внутренний_список_стр = внутренний_список_стр.replace('массив', 'np.array') # Используйте ast.literal_eval для безопасной оценки строки как литерала Python пытаться: внутренний_список = ast.literal_eval(inner_list_str) np_array = np.array(внутренний_список) print("Массив NumPy:") печать (np_array) print("Тип данных np_array:", type(np_array)) кроме исключения как e: print(f"Ошибка: невозможно преобразовать строку в массив NumPy. {e}") Текущий результат
Ошибка: невозможно преобразовать строку в массив NumPy. неправильный узел или строка в строке 1: Ожидаемый результат
[массив([[[ 0, 22], [ 0, 23]]])]
У меня есть строка A. Я хочу преобразовать в массив, но столкнулся с ошибкой. Я представляю текущие и ожидаемые результаты.
импортировать ast импортировать numpy как np A = '\n[array([[[ 0, 22],\n [ 0, 23]]], dtype=int64)]' # Удалите ненужные символы и исправьте dtype A_cleaned = A.replace('\n', '').replace('dtype=int64', '').strip() # Извлекаем содержимое внутри крайних скобок start_idx = A_cleaned.find('[') end_idx = A_cleaned.rfind(']') внутренний_список_стр = A_cleaned[start_idx:end_idx+1] # Замените «array» на «np.array» внутренний_список_стр = внутренний_список_стр.replace('массив', 'np.array') # Используйте ast.literal_eval для безопасной оценки строки как литерала Python пытаться: внутренний_список = ast.literal_eval(inner_list_str) np_array = np.array(внутренний_список) print("Массив NumPy:") печать (np_array) print("Тип данных np_array:", type(np_array)) кроме исключения как e: print(f"Ошибка: невозможно преобразовать строку в массив NumPy. {e}") Текущий результат
Ошибка: невозможно преобразовать строку в массив NumPy. неправильный узел или строка в строке 1: Ожидаемый результат
[массив([[[ 0, 22], [ 0, 23]]])]