scores = [10, 20, 30, 40, 50, 60]
mid_scores = [10, 20, 30] # 파이썬 리스트 객체
final_scores = [70, 80, 90] # 파이썬 리스트 객체
total = mid_scores + final_scores # 원소간의 합이 아닌 리스트를 연결함
total
import numpy as np # 앞으로 numpy의 별명을 np로 한다
mid_scores = np.array([10, 20, 30])
final_scores = np.array([60, 70, 80])
total = mid_scores + final_scores
print('시험성적의 합계 :', total) # 각 요소별 합계가 나타난다
print('시험성적의 평균 :', total/2) # 모든 요소를 2로 나눈다
import numpy as np
a = np.array([1, 2, 3]) # 넘파이 ndarray 객체의 생성
a.shape # a 객체의 형태(shape)
a.ndim
a.dtype
a.itemsize
a.size
import numpy as np
# 실습 1
array_a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print('실습 1 : array_a =', array_a)
# 실습 2
array_b = np.array(range(10))
print('실습 2 : array_b =', array_b)
# 실습 3
array_c = np.array(range(0,10,2))
print('실습 3 : array_c =', array_c)
# 실습 4
print('실습 4: ')
print('array_c의 shape :', array_c.shape)
print('array_c의 ndim :', array_c.ndim)
print('array_c의 ctype :', array_c.dtype)
print('array_c의 size :', array_c.size)
print('array_c의 itemsize :',array_c.itemsize)
import numpy as np
salary = np.array([220, 250, 230])
salary = salary + 100
print(salary)
salary = np.array([220, 250, 230])
salary = salary * 2
print(salary)
salary = np.array([220, 250, 230])
salary = salary * 2.1
print(salary)
넘파이가 계산을 쉽고 빠르게 할 수 있는 데에는 이유가 있다. 넘파이는 각 배열마다 타입이 하나만 있다고 생각한다. 다시 말하면, 넘파이의 배열 안에는 동일한 타입의 데이터만 저장할 수 있다. 즉 정수면 정수, 실수면 실수만을 저장할 수 있는 것이다. 파이썬의 리스트처럼 여러 가지 타입을 섞어서 저장할 수는 없다. 만약 여러분들이 여러 가지 타입을 섞어서 넘파이의 배열에 전달하면 넘파이는 이것을 전부 문자열로 변경한다. 예를 들어서 다음 배열은 문자열 배열이 된다.
tangled = np.array([ 100, 'test', 3.0, False])
print(tangled)
import numpy as np
heights = [ 1.83, 1.76, 1.69, 1.86, 1.77, 1.73 ]
weights = [ 86, 74, 59, 95, 80, 68 ]
np_heights = np.array(heights)
np_weights = np.array(weights)
bmi = np_weights/(np_heights**2)
print(bmi)
import numpy as np
scores = np.array([88, 72, 93, 94, 89, 78, 99])
scores[2]
scores[-1]
scores[1:4] # 첫번째, 두번째, 세번째, 네번째 항목을 슬라이싱 함
scores[3:] # 마지막 인덱스를 생략하면 디폴트 값은 -1임
scores[4:-1] # 마지막 인덱스 -1을 사용
ages = np.array([18, 19, 25, 30, 28])
y = ages > 20
y
ages[ ages > 20 ]
import numpy as np
y = [[1,2,3], [4,5,6], [7,8,9]]
y
np_array = np.array(y)
np_array
np_array[0][2]
np_array = np.array([[1,2,3], [4,5,6], [7,8,9]])
np_array[0, 2]
np_array[0, 0]
np_array[2, -1]
np_array[0, 0] = 12 # ndarray의 첫 요소를 변경함
np_array
np_array[2, 2] = 1.234 # 마지막 요소의 값을 실수로 변경하려고 하면 실패
np_array
np_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
np_array[0:2, 1:3]
np_array[0]
np_array[1, 1:3]
np_array = np.array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16]])
print(np_array[::2][::2]) # 첫 슬라이싱: 0행, 2행 선택, 두 번째 슬라이싱: 그 중 0행 선택
print(np_array[::2,::2]) # 행 슬라이싱: 0행, 2행 선택, 열 슬라이싱: 0열 2열 선택
np_array = np.array([[1,2,3], [4,5,6], [7,8,9]])
np_array > 5
np_array[ np_array > 5 ]
np_array[:, 2]
np_array[:, 2] > 5
import numpy as np
x = np.array( [['a', 'b', 'c', 'd'],
['c', 'c', 'g', 'h']])
print(x [ x == 'c' ])
#print(x - y)
mat_a = np.array( [[10, 20, 30], [10, 20, 30]])
mat_b = np.array( [[2, 2, 2], [1, 2, 3]])
print(mat_a - mat_b)
import numpy as np
x = np.array([[ 1.83, 1.76, 1.69, 1.86, 1.77, 1.73 ],
[ 86.0, 74.0, 59.0, 95.0, 80.0, 68.0 ]])
y = x[0:2, 1:3]
z = x[0:2][1:3]
print('x shape :', x.shape)
print('y shape :', y.shape)
print('z shape :', z.shape)
print('z values = :', z)
bmi = x[0] / x[1]**2
print('BMI data')
print(bmi)
import numpy as np
players = [[170, 76.4],
[183, 86.2],
[181, 78.5],
[176, 80.1]]
np_players = np.array(players)
print('몸무게가 80 이상인 선수 정보');
print(np_players[ np_players[:, 1] >= 80.0 ])
print('키가 180 이상인 선수 정보');
print(np_players[ np_players[:, 0] >= 180.0 ])
import numpy as np
np.arange(5)
np.arange(1, 6)
np.arange(1, 10, 2)
range(5)
range(0, 5, 2)
list(range(5))
np.array(range(5))
np.linspace(0, 10, 100)
np.logspace(0, 5, 10)
import numpy as np
y = np.arange(12)
y
y.reshape(3, 4)
y.reshape(6, -1)
y.reshape(7, 2)
y.flatten()
np.random.seed(100)
np.random.rand(5)
np.random.rand(5, 3)
a = 10
b = 20
(b - a) * np.random.rand(5) + a
np.random.randint(1, 7, size=10)
np.random.randint(1, 11, size=(4, 7))
np.random.randn(5)
np.random.randn(5, 4)
mu = 10
sigma = 2
randoms = mu + sigma * np.random.randn( 5, 4 )
randoms
m = 175
sigma = 10
heights = m+sigma*np.random.randn(10000)
np.mean(heights)
np.median(heights)
array_data = np.array([ 3, 7, 1, 2, 21])
np.mean(array_data)
np.median(array_data)
import numpy as np
players = np.zeros( (100, 3) )
players[:, 0] = 10 * np.random.randn(100) + 175
players[:, 1] = 10 * np.random.randn(100) + 70
players[:, 2] = np.floor(10 * np.random.randn(100)) + 22
heights = players[:, 0]
print('신장 평균값:', np.mean(heights))
print('신장 중앙값:', np.median(heights))
weights = players[:, 1]
print('체중 평균값:', np.mean(weights))
print('체중 중앙값:', np.median(weights))
ages = players[:, 2]
print('나이 평균값:', np.mean(ages))
print('나이 중앙값:', np.median(ages))
import numpy as np
x = [ i for i in range(100) ]
y = [ i ** 2 for i in range(100) ]
result = np.corrcoef(x, y)
print(result)
x = [ i for i in range(100) ]
y = [ i ** 2 for i in range(100) ]
z = [ 100 * np.sin(3.14*i/100) for i in range(0, 100) ]
result = np.corrcoef( [x, y, z] )
print(result)
a = np.arange(0, 24).reshape(4, 3, 2)
print(a)
print(a.flatten())