본문 바로가기
Python/Python FAQ

Python NumPy에서 빈 배열을 생성한 다음에 어떻게 해당 배열에 추가할 수 있나요?, How do I create an empty array and then append to it in NumPy?

by 베타코드 2023. 12. 4.
반응형

질문


나는 빈 배열을 만들고 항목을 하나씩 추가하고 싶습니다.

xs = []
for item in data:
    xs.append(item)

NumPy 배열에서 이 리스트 스타일 표기법을 사용할 수 있을까요?


답변


NumPy를 효율적으로 사용하기 위한 잘못된 메타 모델입니다. NumPy 배열은 연속적인 메모리 블록에 저장됩니다. 기존 배열에 행 또는 열을 추가하려면 전체 배열을 새로운 메모리 블록으로 복사해야 하며, 새로운 요소를 저장하기 위해 간격이 생깁니다. 이는 반복적으로 수행되면 매우 비효율적입니다.

행을 추가하는 대신에 적절한 크기의 배열을 할당하고, 행별로 할당하세요:

>>> import numpy as np

>>> a = np.zeros(shape=(3, 2))
>>> a
array([[ 0.,  0.],
       [ 0.,  0.],
       [ 0.,  0.]])

>>> a[0] = [1, 2]
>>> a[1] = [3, 4]
>>> a[2] = [5, 6]

>>> a
array([[ 1.,  2.],
       [ 3.,  4.],
       [ 5.,  6.]])
반응형

댓글