python에서 numpy로 array를 복사하는 방법에는 여러가지가 있는데 갑자기 성능에대한 궁금증이 생겨서 몇가지 테스트를 해보았습니다. 의외로 방법들마다 차이가 있었습니다.ㅎ
numpy에서 matrix4x4를 복사하는 방법에 대한 퍼포먼스 테스트 ( 각 케이스당 100,000번 수행 )
a=np.eye(4) # matrix4x4
b=np.eye(4)
# 이건 값을 복사하는 케이스가 아니기 때문에 테스트 하지 않음
a = b
# 주의할점은 이 두가지 방법은 값에 의한 복사가 아니다. numpy객체 자체는 다르지만 내부의 리스트는 같은 원소이다. 즉, a의 원소값을 바꾸면 b에도 동일하게 적용되기 때문에 주의해야 한다.
a = b[...] 0.0281984806060791
a = b[:] 0.03184771537780762
# 아래의 방법들은 실제로 값이 복사되는 방법들이다. 빠른순으로 정렬
a[...] = b 0.06301045417785645
a[...] = b[...] 0.08553266525268555
a = b.copy() 0.08831429481506348
a[:] = b 0.08985710144042969
a[:] =b[:] 0.11564087867736816
a[...] = b.copy() 0.14728522300720215
태그 : numpy
덧글