Я пытаюсь изменить двумерный массив на одномерный, мой код выглядит так:
x = np.array([[1, 2, 4], [3, 4], [1,2,3,4,5,6,7]])
x = x.flatten()
однако я обнаружил, что функция сглаживания хорошо работает на
x = np.array([[1, 2], [3, 4]])
но это не работает на
x = np.array([[1, 2, 4], [3, 4], [1,2,3,4,5,6,7]])
может ли кто-нибудь помочь мне измениться
np.array([[1, 2, 4], [3, 4], [1,2,3,4,5,6,7]])
к
np.array([[1, 2, 4, 3, 4, 1,2,3,4,5,6,7])
Спасибо
Возможный дубликат Сглаживание массива numpy с помощью Python
@PaulRooney, ваша ссылка посвящена reshape, которую flatten пытается сделать. Здесь это не применимо.






Используйте следующий простой код.
import numpy as np
x = np.array([[1, 2, 4], [3, 4], [1,2,3,4,5,6,7]])
y = sum(x.tolist(),[])
print(np.array(y))
Вы можете попробовать использовать concatenate (numpy документация):
flatten_x = np.concatenate(x)
t = [[4, 9, 2], [3, 5, 7], [8, 1, 5]]
arr_t=[]
for a in t:
arr_t+=a
Сегодня чуть раньше вопрос о сглаживании - stackoverflow.com/questions/52970017/…. Ключевым моментом является то, что ваш
xне является двухмерным. Это 1д! Если не верите, проверьте этоshape. Это 1d объектный массив списков dtype.