Numpy 배열
모두 같은 유형의 값이며 음수가 아닌 정수의 튜플로 인덱싱된다.
차원의 수는 배열의 랭크이며 배열의 shape은 각 차원별 배열 크기의 튜플이다.
중첩 된 파이썬 리스트로부터 numpy 배열을 초기화 할 수 있고 대괄호를 사용하여 요소에 접근 할 수 있다.
1. Numpy 배열 생성하기
먼저 넘파이 배열을 생성하고 차원과 형태, 데이터타입을 확인해보자.
a = np.array([1, 2, 3])
print(a)
print(type(a), a.ndim, a.shape, a.dtype)
#출력
[1 2 3]
<class 'numpy.ndarray'> 1 (3,) int64
출력된 결과의 타입을 살펴보면
[1, 2, 3] 의 1차원, shape은 3, 문자원소를 포함한 넘파이 배열이 생성된 것 을 확인할 수 있다.
shape이 (3, ) 로 출력된 이유는 튜플형태이기 때문!
원소의 형태를 따로 지정하지 않을 경우 default 로서 문자로서 출력이 되는 것도 확인할 수 있다.
2. np.array 와 asarray 차이점
먼저 코드를 확인해보자
a = np.array([1, 2, 3])
b = np.asarray(a)
# 출력
a = [1 2 3]
b = [1 2 3]
결과는 동일하게 출력된다.
그러나 copy data 를 생성하는지에서 그 차이를 확인할 수 있다.
# a, b 각각 다른 방법으로 array 생성
a = np.array([1, 2, 3])
b = np.asarray(a)
# b의 첫 번째 요소 변경
b[0] = 9
# a, b 결과 확인
a = [9 2 3]
b = [9 2 3]
asarray의 경우 copy data 를 생성하지 않으므로 변경사항이 동일하게 저장된다.
그럼 np.array는 어떨까?
# a, b 각각 다른 방법으로 array 생성
a = np.array([1, 2, 3])
b = np.asarray(a)
# b의 첫 번째 요소 변경
b[0] = 9
# a, b 결과 확인
a = [9 2 3]
b = [9 2 3]
# 변경된 a를 c에 새롭게 저장
c = np.array(a)
# c의 첫 번째 요소 변경
c[0] = 1
# a, b, c 결과 확인
a = [9 2 3]
b = [9 2 3]
c = [1 2 3]
np.array로 저장된 c의 변경사항이 a에 동일하게 적용되지 않았다.
이는 np.array의 경우 또 다른 나(데이터) 자신인 copy_data를 새로 생성하기 때문이다.
'Python > Build setting' 카테고리의 다른 글
| [Numpy]넘파이 배열 생성(zeros_like, ones_like, full_like, empty_like) (0) | 2022.08.24 |
|---|---|
| [Numpy]넘파이 배열 생성(zeros, ones, full, empty) (0) | 2022.08.24 |
| [Numpy]넘파이란? (0) | 2022.08.24 |
| CSV 파일 형식이란? (0) | 2022.08.10 |
| 파이썬과 아나콘다 설치하기 (0) | 2022.08.10 |
댓글