#ndarray 클래스 n - dimension araay => 배열 n차원 배열
# sum(), sqrt() , mean()
#선형대수, 난수생성, 푸리에 변환
#import numpy as np
#동일한 자료형을 가지는 값들이 배열 형태로 존재함
import numpy as np
np.array([1,2,3])
list1 = [1,2,3,4,5]
list1
np.array(list1)
y=type(list1)
#2차원 어레이 생성하기
arr1 = np.array([1,2,3,4,5])
arr2 = np.array([[1,2,3],[4,5,6]])
arr2
#np.ndarray 각차원의 길이를 알려주는 키워드
arr2.shape
arr1.shape
len(arr)
len(arr2)
arr2
arr2.shape
len(arr2) #가로개수만큼 차원이 있다.!!!!
print(arr1.size)
print(arr2.size)
print(arr1)
print(arr1.dtype)
print(arr2)
print(arr2.dtype) #ndarray의 데이터 타입을 확인하는 키워드
arr0=np.array([0.1,0.2,0.3])
print(arr0.dtype)
#int32중 32 : 이 데이터를 나타내는 비트 수
print(arr.ndim)
print(arr2.ndim)
#차원의 수 표기
arr7 = np.array([[[1,2],
[3,4]],
[[5,6],
[7,8]]]) #3차원배열 2차원을 만든 후에 3차원으로 전환
print("배열의 크기 {}".format(arr7.shape))
print("배열의 차원 {}".format(arr7.ndim))
print("배열의 개수 {}".format(arr7.size))
arr_zeros = np.zeros((3,4)) #zeros((array 크기)) : 원하는 크기만큼의 array를 0으로 생성하는 함수
print(arr_zeros)
print()
arr_ones = np.ones((3,4))
print(arr_ones)
arr_full = np.full((6,5),7) #full 원하는 크기만큼의 array를 초기화 값으로 생성
print(arr_full)
list4 = []
for i in range(1,51):
list4.append(i)
print(list4)
arr8 = np.arange(1,51)
print(arr8)
np.random.rand(2,3) #원하는 크기의 ndarray를 0~1무작위 소수값으로 초기화
np.random.randint(0,45, size=(2,3)) #randint(시작값, 끝값+1, size(원하는 Shape))
arr_type = np.array([1.2,3.4,9.8], dtype=np.int64)
arr_type
arr_type = arr_type.astype("float64")
arr_type
# Array 연산자
- array랑 array가 아닌 값과 연산
- array와 array이와의 연산
#array와 단일값 연산
dollar = np.array([1, 1.4, 2])
dollar
dollar*1200
#array와 array의 연산
arr = np.array((1,2,3))
arr+arr
arr2 = np.array((1,2,3,4)) #오류가남
arr+arr2
list5 = [1,2,3]
list6 = [4,5,6]
list5 + list6 #리스트는 연산 불가능
# indexing & Slicing
arr = np.array([[1,2,3],
[4,5,6]])
print(arr[0])
print(arr[0][1])
print(arr[0:2])
arr[1][1]
arr11 = np.arange(10)
arr11[3:8]
arr11[3:8] = 12
arr11
arr2 = np.arange(50).reshape(5,10)
arr2
arr_1 = np.arange(50) #reshape(1차원크기,2차원크기 원하는 모양으로)
arr_1 = arr_1.reshape((10, -1)) # array변경
arr2[ : , :1]
- indexing은 값 하나를 가르킴
- slicing은 여러 값을 되돌려주기 위해 array형태로 돌려줌
arr2[[2,1],[2,1]] #앞에는 앞에만 뒤에는 뒤에만 이건 좀 헷갈리는 부분
#텍스트파일을 읽어 내용을 np.data로 변환
data = np.loadtxt("height_weight.txt",delimiter=",")
#bmi지수 몸무게/ 키*키
height = np.delete(data,1,axis=0)
weight = np.delete(data,0,axis=0)
height = height/100
Bim_data = np.array(weight/(height**2))
print(Bim_data)
print(data.shape)
print(data.ndim)
print(data.size)
print(data.dtype)