def BMI(h,w):
return (float)((w/h**2)*10000)
def AVG(arr,size,flag,num_sex):
if size==0:
return 0;
sum=0.0;
cnt=0
for i in range(size):
if(arr[i][2]==num_sex):
cnt+=1
sum+=arr[i][flag]
return sum/cnt
n=int(input())
height= np.random.randint(low=160,high=201,size=n)
weight=np.random.randint(low=50,high=101,size=n)
sex=np.random.randint(low=0,high=2,size=n)
arr_bmi=np.array(0)
for i in range(n):
arr_bmi=np.insert(arr_bmi,i,BMI(height[i],weight[i]))
people= np.vstack((height, weight, sex)).T
people_num=np.arange(1,n+1)
print('회원정보')
print(people)
print(people_num)
print(arr_bmi[:n])
print('남성 평균 신장: ',round(AVG(people,n,0,0),2))
print('남성 평균 몸무게:',round(AVG(people,n,1,0),2))
print('여성 평균 신장: ',round(AVG(people,n,0,1),2))
print('여성 평균 몸무게:',round(AVG(people,n,1,1),2))
print('신장의 오름차순으로 회원번호(인덱스 번호):', )
print('몸무게의 오름차순으로 회원번호(인덱스 번호):', )
print('BMI 오름차순으로 정렬된 사용자 정보 출력: ')
다음 코드는 어떤 형태로 출력 되는가?
1. 3*2 행렬 (2) 2*3 행렬 (3) 출력이 되지 않는다(3)
2. `np.median()` 은 `np.mean()` 과 달리 중앙값을 반환하므로 기존 배열이 정수로 이뤄져있다면 정수만을 반환한다. (O)
3. delete 함수는 2차원 이상의 배열에서 axis 값을 정하지 않으면 디폴트 값 0으로 지정하고 열단위의 삭제를 진행한다. (O, X)
4. 만약 다차원 배열의 모든 원소를 for문 적용하고 싶은 경우 `reshape()`를 사용 해도 되지만 `.flat` 을 이용할 수 있다. (O, X)
5. `arr.T()`를 통해 변환한 배열과 달리 `arr.reshape()`를 통해 변환한 배열은 테이터 원본을 변경시키지 않고 복사하여 연산한 결과가 return 된다. (O)
6. 다음 1차원 배열 x가 있다.`x = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3])`
x에 `argsort()` 함수를 적용하면 x 배열의 요소들을 내림차순으로 정렬한 후, 각 요소의 인덱스를 반환한다. ( X)
----> 오름 차순임
7. 다음과 같은 arr 배열이 있다.
```python
arr = np.array([[3, 1, 4, 2],
[9, 5, 7, 8],
[6, 10, 11, 12]])
```
2차원 arr 배열의 `print((arr)[::-1])` 결과와 `print(np.sort(arr,axis=1))`결과는 동일하다. (X)
[[ 6 10 11 12]
[ 9 5 7 8]
[ 3 1 4 2]]
[[ 1 2 3 4]
[ 5 7 8 9]
[ 6 10 11 12]]
8. 원소의 개수가 10개인 배열 `arr[1,2,3,4,5,6,7,8,9,10]`에 `arr.reshape(4, -1)` 사용하면 자동으로 `[[1,2,3,4],[5,6,7,8],[9,10]]`으로 변환해준다. (X)
--->이유: cannot reshape array of size 10 into shape (4,newaxis)
9. matrix 차원이 증가함에 있어서 학습 데이터에 비해 차원의 수가 많이 늘어나면 모델의 성능이 저하되는데 이것을 `(차원의 저주 )`이라 한다.
10. resize 함수는 2차원 배열로만 변환이 가능하다. (X)
2. `np.median()` 은 `np.mean()` 과 달리 중앙값을 반환하므로 기존 배열이 정수로 이뤄져있다면 정수만을 반환한다. (O, X)
3. delete 함수는 2차원 이상의 배열에서 axis 값을 정하지 않으면 디폴트 값 0으로 지정하고 열단위의 삭제를 진행한다. (O, X)
4. 만약 다차원 배열의 모든 원소를 for문 적용하고 싶은 경우 `reshape()`를 사용 해도 되지만 `.flat` 을 이용할 수 있다. (O, X)
5. `arr.T()`를 통해 변환한 배열과 달리 `arr.reshape()`를 통해 변환한 배열은 테이터 원본을 변경시키지 않고 복사하여 연산한 결과가 return 된다. (O)
6. 다음 1차원 배열 x가 있다.`x = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3])`
x에 `argsort()` 함수를 적용하면 x 배열의 요소들을 내림차순으로 정렬한 후, 각 요소의 인덱스를 반환한다. ( X)
----> 오름 차순임
7. 다음과 같은 arr 배열이 있다.
```python
arr = np.array([[3, 1, 4, 2],
[9, 5, 7, 8],
[6, 10, 11, 12]])
```
2차원 arr 배열의 `print((arr)[::-1])` 결과와 `print(np.sort(arr,axis=1))`결과는 동일하다. (X)
[
[ 6 10 11 12]
[ 9 5 7 8]
[ 3 1 4 2]
]
[
[ 1 2 3 4]
[ 5 7 8 9]
[ 6 10 11 12]
]
8. 원소의 개수가 10개인 배열 `arr[1,2,3,4,5,6,7,8,9,10]`에 `arr.reshape(4, -1)` 사용하면 자동으로 `[[1,2,3,4],[5,6,7,8],[9,10]]`으로 변환해준다. (X)
--->이유: cannot reshape array of size 10 into shape (4,newaxis)
9. matrix 차원이 증가함에 있어서 학습 데이터에 비해 차원의 수가 많이 늘어나면 모델의 성능이 저하되는데 이것을 `(차원의 저주 )`이라 한다.
10. resize 함수는 2차원 배열로만 변환이 가능하다. (X)