이중 리스트를 단일 배열 또는 단일 리스트로 만들고 싶다.
flatten() 이중 리스트 안의 개수가 같은 경우
import numpy as np
data = [[1, 2], [3, 4]]
data = np.array(data).flatten()
print(data)
출력 결과
[1 2 3 4]
flatten() 이중 리스트 안의 개수가 다른 경우
import numpy as np
data = [[1, 2], [3]]
data = np.array(data).flatten()
print(data)
출력 결과
[list([1, 2]) list([3])]
위와 다른 결과인 것을 확인할 수 있다.
flatten() 삼중 리스트 안의 개수가 같은 경우
import numpy as np
data = [[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]]
data = np.array(data).flatten()
print(data)
출력 결과
[ 1 2 3 4 5 6 7 8 9 10 11 12]
개수가 다른 경우에는 당연히 잘 작동하지 않는다.
reshape(-1) 이중 리스트 안의 개수가 같은 경우
import numpy as np
data = [[1, 2], [3, 4]]
data = np.array(data).reshape(-1)
print(data)
출력 결과
[1 2 3 4]
잘 된다.
reshape(-1) 이중 리스트 안의 개수가 다른 경우
import numpy as np
data = [[1, 2], [3]]
data = np.array(data).reshape(-1)
print(data)
출력 결과
[list([1, 2]) list([3])]
역시 잘 안 된다.
sum을 이용: 이중 리스트
data = [[1, 2], [3]]
data = sum(data, [])
print(data)
출력 결과
[1, 2, 3]
sum을 이용: 3중 리스트
data = [[[1, 2], [3, 4], [1, 2], [3, 4]], [[1, 2], [3, 4], [1, 2], [3]]]
data = sum(data, [])
print(data)
출력 결과
[[1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3]]
3중의 경우에는 sum을 이용해서는 원하는 결과가 나오지 않는다.