첫 번째 목록에는 16 개가 아닌 15 개의 요소가 있습니다. 또한 A
은 무엇이되어야합니까? 다른 곳에서 정의한 상수입니까? 그냥 문자열이라고 가정합니다 : 'A'
.
당신이 np.arrays
와 함께 작업하는 경우, 당신은 할 수 단순히 reshape 배열 :
import numpy as np
r = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F', 'G'])
r.reshape(2,2,2,2)
그것은 출력 : NumPy와는 기본 데이터 형식을 변경하지 않기 때문에
array([[[['1', '2'],
['3', '4']],
[['5', '6'],
['7', '8']]]
[[['9', 'A'],
['B', 'C']],
[['D', 'E'],
['F', 'G']]]
dtype='<U11')
이 정말 효율적이어야한다. 다르게 표시되는 여전히 편평한 배열입니다.
Numpy는 불규칙한 모양을 지원하지 않습니다. 다음은 표준 파이썬 목록으로 작업해야합니다.
i = iter([1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F', 'G'])
l1 = []
for _ in range(2):
l2 = []
for _ in range(2):
l3 = []
l4 = []
for _ in range(3):
l4.append(next(i))
l3.append(l4)
l3.append(next(i))
l2.append(l3)
l1.append(l2)
print(l1)
# [[[[1, 2, 3], 4], [[5, 6, 7], 8]], [[[9, 'A', 'B'], 'C'], [['D', 'E', 'F'], 'G']]]
앞에서 말한 것처럼 각 수준에 대한 임시 변수를 정의해야합니다. 나는 당신이리스트 comprehensions를 사용할 수 있었다고 생각한다. 그러나 그들은 귀여울 것이다.
고마워요! 그러나이 기술을 사용하면 각 레벨에 고정 된 수의 요소로 제한됩니다. 맞습니까? 나는 그에 따라 게시물을 편집 할 예정이다. 불쌍한 질문에 대해 미안하다. – Cons