# # #numpy.ndarray 클래스
# # #동일한 자료형을 가지는 값들이 배열 형태로 존재함.
# # #N차원 형태로 구성이 가능하다.
# # #각 값들은 양의 정수로 index이 부여되어있다.
# # #numpy에서 차원을 rank,axis라고 부르기도 한다
# # #ndarray를 줄여서 array로 표현한다.
# # import numpy as np
# # list1 = [[1,2,3,4],[5,6,7,8]]
# # arr1 = np.array(list1)
# # print(arr1.shape) #1번숫자 axis 0 2번 axis 1
# # print(arr1)
# # print(arr1.size)
# # print(arr1.dtype)
# # print(arr1.ndim)
# # arr_zeros = np.zeros((3,4,2))
# # print(arr_zeros)
# # arr_arrange = np.arange(3,7)
# # print(arr_arrange)
# # arr_type = arr_type.astype('float64')
# array operation(배열 연산)
# 각자리의 값끼리 연산이 이루어지는데 array의 shape 가 동일해야만 가능
# array 슬라이싱도 가능하다.
# 인덱싱은 값을 반환하고 슬라이싱은 범위를 반환함에 주의할 것
# Boolean 색인
- array와 단일 연산 이루어지는 연산경과는 Boolean자료형인 연산
- 비교연산자
- Truen인 인댁스만 찾아줌 array[bolean] 이렇게 가능
import numpy as np
name = np.array(['운비','세욱','승준','동원'])
bol = np.array([True, False, True,False])
name[bol]
name_student = np.array(['운비', '세욱', '승준', '동원'])
#각 학생별 2과목 점수
name_score = np.array([[60,60],[100,90],[80,80],[90,90]])
name_score.shape
name_student == '운비'
name_score[name_student == '운비']
# Universal Function
- 전체의 값에 대해서 정해진 ~...?
#합계를 구해보자
arr = np.random.randint(1,10, size=(2,5))
print(arr.sum())
print(np.sum(arr))
#array 평균구하기
print(arr.mean())
print(np.mean(arr))
#array root
print(np.sqrt(arr))
#절대값을 씌운 array 구하기
arr = np.array([-1,1,-7,8,-11])
np.abs(arr)
np.rint(arr)
# 영화평점 데이터 구하기 실습
import numpy as np
data = np.loadtxt("ratings.txt",delimiter="::", dtype="int")
data
print(data.dtype)
print(data.shape)
print(data.ndim)
print(data.size)
movie_mean = np.mean(data[ : , 2])
movie_mean
#1번사용자의 데이터 가져오기
data_bol = (data[:,0] == 1)
user_1 = data[data_bol] #일번 사용자의 데이터
#1번사용자의 평점 평균구하기
user_1_mean = np.mean(user_1[:,2])
print(user_1_mean)
#unique 각 array 값들의 중복을 제거
user_id = np.unique(data[:,0])
print(user_id.shape)
user_id
#각사용자의 평점평균을 구해보자
user_mean_list = []
for user in user_id:
data_bol = (data[:,0] == user)
user_1 = data[data_bol]
user_1_mean = np.mean(user_1[:,2])
user_mean_list.append([user, user_1_mean])
user_mean_list
mean_data = np.array(user_mean_list)
bol=mean_data[:,1] >= 4
mean_data[:,0][bol].astype('int')
#np.savetxt('파일이름', 저장하고싶은 데이터 , delimiter = 구분자 , fmt="%3f")
np.savetxt('user_id_mean.csv', user_mean_list, delimiter=',', fmt="%.3f")