---
layout: single
title: numpy 3. 학습 예제
tags: numpy_pandas
---
## 예제 4_6_1
```python
import numpy as np
def work1():
# array의 type와 value의 type을 확인하시오
a = np.array([3.1,11.2,6.7,213.11])
print(type(a))
print(a.dtype)
return None
def work2():
# array a의 크기, 차원, 형태(shape)을 확인하시오
a = np.array([3.1,11.2,6.7,213.11])
print(a.size)
#print(a.nbytes) 이건 크기가 아니고 용량인가?
print(a.ndim)
print(a.shape)
return None
def work3():
# array a의 3번째 원소를 100으로 변경하시오
a = np.array([3.1,11.2,6.7,213.11])
a[2]=100
print(a)
return None
def work4():
# array a의 1-3번째 원소들을 선택하여 새로운 array를 생성하시오
a = np.array([3.1,11.2,6.7,213.11])
b = a[:3]
print(b)
return None
def work5():
# 다음 array ar의 짝수값만 출력하시오
ar = np.array([1,2,3,4,5,6,7,8])
print(ar[1::2])
return None
def work6():
# array ar의 mean(평균)과 median(중위값)을 찾으시오
ar = np.array([1,2,3,4,5,6,7,8])
print(np.mean(ar))
print(np.median(ar))
return None
def work7():
# numpy의 mathematical function을 사용하여 다음 두 array의 뺄셈을 수행
a = np.array([1,2,3,4,5])
b = np.array([0,1,2,3,4])
print(a-b)
return None
def work8():
# Hadamard mul과 Dot product를 확인
a = np.array([1,2,3,4,5])
b = np.array([0,1,2,3,4])
print(a*b)
print(np.dot(a,b))
return None
def work9():
# 범위 [5,4]안에 6개의 원소로 된 array를 생성하여 lin_arr에 저장하고 출력하시오.
lin_arr = np.linspace(5,4,num = 6)
print(lin_arr)
return None
def work10():
#A에 저장하고 size, dim, shape를 확인하시오
a = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
A = np.array(a)
print(A.size)
print(A.ndim)
print(A.shape)
return None
def work11():
#A의 첫번째 row의 처음 두 개의 원소를 출력하시오
a = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
A = np.array(a)
print(A[0,:2])
return None
def work12():
#다음 2-D array와 A의 Hadamard Mul과 matrix mul의 가능 여부를 확인한 후, 가능한 경우 결과를 출력하시오
a = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
A = np.array(a)
B = np.array([[0,1],[1,0],[1,1],[-1,0]])
#print(A*B)
print(np.dot(A,B))
return None
def main():
#work1()
#work2()
#work3()
#work4()
#work5()
#work6() #?? - median 이게 맞나
#work7() # 맞나?
#work8()
#work9()
#work10()
#work11()
work12()
return None
if __name__ == '__main__':
main()
```
## 예제 4_6_2
```python
import numpy as np
import time
def work1():
# [12,38) 사이의 값으로 채워진 ndarray를 생성하고 출력하기
a = np.arange(12,38)
print(a)
return None
def work2():
# 10x10 ndarray를 생성하고 checkerboard꼴로 채우기
tmp1 = np.arange(1,10)
a = tmp1 % 2
b = (tmp1 + 1) % 2
A = a+b
print(A)
return None
def work3():
# ndarray 2개가 주어질때 공통값 찾기
a = np.array([0,10,20,40,60])
b = np.array([10,11,12])
result = np.intersect1d(a,b)
print(result)
return None
def work4():
# 주어진 ndarray가 차지하는 메모리 크기는
a = np.array([[1,2,3],[4,5,6]])
print(a.nbytes)
return None
def work5():
# 5x5 random matrix 생성하고 normaliz3e
np.random.seed(int(time.time()))
A = np.random.rand(25).reshape((5,5))
print(A)
mean_A = np.mean(A)
std_A = np.std(A)
result = (A - mean_A)/std_A
print(result)
return None
def work6():
# 크기가 10인 ndarray를 생성한 후 가장 큰 값을 0 으로 대체하라
np.random.seed(int(time.time()))
A = np.random.rand(10)
print(A)
print(A.argmax())
A[A.argmax()] = 0
print(A)
return None
def work7():
# 주어진 ndarray에서 0이 아닌 원소의 개수를 구하시오
np.random.seed(int(time.time()))
A = np.random.randint(0,3,10)
print(A)
result = A.nonzero()
print(result)
return None
def main():
#work1()
work2() #다시..
#work3()
#work4()
#work5()
#work6()
#work7()
return None
if __name__ == '__main__':
main()
```
0 댓글