코드
import numpy as np # array 함수를 사용하는 일반 python 리스트나 튜플을 이용 a = np.array([2,3,4]) print("배열 a = %s" %a) print("배열 a의 각 요소의 데이터형 : %s " %a.dtype) b = np.array([2.3, 3.3, 4.4]) print("배열 b = %s" %b) print("배열 b의 각 요소의 데이터형 : %s " %b.dtype) c = np.array([(1.5, 2, 3), (4, 5, 6)]) print("배열 C는 2차원 배열 : ") print(c)
결과
배열 a = [2 3 4] 배열 a의 각 요소의 데이터형 : int32 배열 b = [ 2.3 3.3 4.4] 배열 b의 각 요소의 데이터형 : float64 배열 C는 2차원 배열 : [[ 1.5 2. 3. ] [ 4. 5. 6. ]]
배열을 생성할 때, 요소들은 모르고 크기만 지정하고 싶은 경우
코드
print("0으로 가득찬 배열 만들기") print(np.zeros((3,4))) print("1으로 가득찬 배열 만들기") print(np.ones((2,5))) print("랜덤값을 가지는 배열 만들기") print(np.random.random((2,2)))
결과
0으로 가득찬 배열 만들기 [[ 0. 0. 0. 0.] [ 0. 0. 0. 0.] [ 0. 0. 0. 0.]] 1으로 가득찬 배열 만들기 [[ 1. 1. 1. 1. 1.] [ 1. 1. 1. 1. 1.]] 랜덤값을 가지는 배열 만들기 [[ 0.85682065 0.46422514] [ 0.00486033 0.48674269]]
arange함수를 이용해서 좀 더 간단히 배열 만들기
코드
print("0부터 10개") print(np.arange(10)) print("3부터 10-1까지의 숫자를 2 간격으로") print(np.arange(3,10,2))
결과
0부터 10개 [0 1 2 3 4 5 6 7 8 9] 3부터 10-1까지의 숫자를 2 간격으로 [3 5 7 9]
arange함수는 간격을 계산해서 입력해줘야 하는 단점이 있으므로 그럴 때에는 linspace 함수를 사용한다.
코드
print("0부터 2사이의 숫자를 9개") print(np.linspace(0, 2, 9))
결과
0부터 2사이의 숫자를 9개 [ 0. 0.25 0.5 0.75 1. 1.25 1.5 1.75 2. ]
다차원 배열과 모양
코드
print("1차원 배열 ") array1 = np.arange(6) print(array1) print("2차원 배열(4행 3열)") array2 = np.arange(12).reshape(4,3) print(array2) print("3차원 배열(높이가 3인 2행 4열 배열 = 2행 4열 배열 3개)") array3 = np.arange(24).reshape(3, 2, 4) print(array3) print("만약 배열의 크기가 너무 커서, 다 표시될 수 없으면 자동으로 배열의 중간 값들을 생략한다.") print(np.arange(10000).reshape(100,100))
결과
1차원 배열 [0 1 2 3 4 5] 2차원 배열(4행 3열) [[ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11]] 3차원 배열(높이가 3인 2행 4열 배열 = 2행 4열 배열 3개) [[[ 0 1 2 3] [ 4 5 6 7]] [[ 8 9 10 11] [12 13 14 15]] [[16 17 18 19] [20 21 22 23]]] 만약 배열의 크기가 너무 커서, 다 표시될 수 없으면 자동으로 배열의 중간 값들을 생략한다. [[ 0 1 2 ..., 97 98 99] [ 100 101 102 ..., 197 198 199] [ 200 201 202 ..., 297 298 299] ..., [9700 9701 9702 ..., 9797 9798 9799] [9800 9801 9802 ..., 9897 9898 9899] [9900 9901 9902 ..., 9997 9998 9999]]
No comments:
Post a Comment