Python

Python - Numpy 연습문제

Data_Minsu 2021. 7. 1. 09:18

1. 임의의 값으로 10*10 배열을 만들고, 전체 최소값과 최대값, 행별 최대값과 최소값, 열별 최대값과 최소값을 출력하기

import numpy as np


a = np.random.random((10,10))
a


print("최대값 :", a.max())
print("최대값 :", a.min())
print("행별 최대값 :", a.max(axis=1))
print("행별 최소값 :", a.min(axis=1))
print("열별 최대값 :", a.max(axis=0))
print("열별 최소값 :", a.min(axis=0))

 

2. 임의의 값을 30개 저장하고 있는 배열을 만들고 평균값을 출력하기

a = np.random.random((30))
a.mean()

 

3. 결과와 같은 값을 저장하고 있는 8*8 행렬을 생성하기

[결과]
[[0. 1. 0. 1. 0. 1. 0. 1.]
[1. 0. 1. 0. 1. 0. 1. 0.]
[0. 1. 0. 1. 0. 1. 0. 1.]
[1. 0. 1. 0. 1. 0. 1. 0.]
[0. 1. 0. 1. 0. 1. 0. 1.]
[1. 0. 1. 0. 1. 0. 1. 0.]
[0. 1. 0. 1. 0. 1. 0. 1.]
[1. 0. 1. 0. 1. 0. 1. 0.]]

 

Z = np.zeros((8,8))
Z[1::2,::2] = 1
Z[::2,1::2] = 1
print(Z)

 

4. 0부터 10까지의 요소를 가진 배열을 생성하고 그중 3에서 8사이의 모든 요소를 
음수인 값을 갖는 배열을 생성

[결과]
array([ 0, 1, 2, 3, -4, -5, -6, -7, 8, 9, 10])

 

a = np.arange(11)
a[(3<a) & (a<8)] *= -1
a

 

5. 0부터10까지의 난수를 10개 가지고 있는 두 배열 a, b를 생성하고, 두배열에 공통으로 있는 값을 출력하기

a = np.random.randint(0,10,10)
b = np.random.randint(0,10,10)
print(a)
print(b)
np.intersect1d(a,b)

s = set()
for i in a:
    for j in b :
        if i ==j :
            s.add(i)
            break
np.array(list(s))