2025.03.25(화) 슈퍼코딩 AI/DATA Day 23 일일보고 - 라이브러리-NumPy_데이터 생성 및 초기화

Honey_Bunny·2025년 3월 25일

슈퍼코딩

목록 보기
21/23

NumPy_데이터 생성 및 초기화


np.arange()

  • range()와 비슷하다
  • float 데이터를 초기화 할 수 있다

dtype을 float으로 두면 실수형으로 줄 수 있다
ndarray를 실제로 만드는 것


np.zeros()

  • np.zeros(shape, dtype= float)
  • ndarray를 생성하고 0으로 초기화

ndarray를 만들고 전부 0으로 초기화
ndarray처럼 숫자만 쓸 경우 기본적으로 1차원 벡터가 만들어진다
기본적인 타입은 float64 디폴트값이다


np.onse()

  • np.ones(shape, dtype=float)
  • ndarray를 생성하고 1으로 초기화

1로 초기화 값으로 되있다
기본적인 타입은 float64 디폴트값이다
data1 = np.ones((4,5)) * 곱하고 싶은 숫자 일 경우 다 곱하고 싶은 숫자가 되기 때문에, ones, zeros로 만 있다
ex) data1 = np.ones((4,5)) * 2를 할 경우 1로 초기화되어 있는 숫자가 다 2로 변경 된다


np.empty()

  • np.empty(shape, dtype=float)
  • ndarray를 생성하고 메모리 초기화 하지 않음
  • 메모리 상태에 따라 임의이 값이 들어가 있을 수 있슴

0으로 초기화 시켜서 할 수 있는데, 굳이 empty로 할 필요가 없다는 소리
단순하게 메모리만 할당할 때 사용한다
임의의 메모리를 할당하고 사용할때 데이터를 집어넣어 사용한다
타입을 정해줘야 어떤 데이터를 사용할지 알기 때문에 타입을 정해주는 것
타입에 따라 바이트사이즈 및 메모리가 정해진다


np.ones_like(), zeros_like(), empty_like()

  • 기존 ndarray의 shape과 같은 1, 0 또는 empty ndarray를 생성

_like() : 이미 어떤 사이즈의 ndarray를 가지고 있고, 똑같은 ndarray를 가지고 싶을 때 _like()를 사용한다


np.indentity()

  • np.identity(number_of_rows, dtype=float)
  • 단위행렬(identity matrix)를 생성

indentity : 수학적으로 대각선이 1인 것을 말함
수학적으로 대각선이 1인 것을 만들 수 있는 툴이 있다


np.eye()

  • np.identity(N, M=None, k=0, dtype=float)
  • 대각선이 1인 행렬을 생성, k = 시작 인덱스

정사각형 행렬이 아닐때, 시작 인덱스를 지정해서 대각선을 1인 것을 만들 수 있다
모양을 변환할때 수학적으로 identity, eye를 사용한다
대각선 관련 초기화 하는 방법이 있다고 알아두기


np.diag()

  • np.diag(matrix, k=0)
  • 대각 행렬의 값 추출, k = 시작 인덱스

시작인덱스를 기준으로 대각선에 어떤 값이 있는 지 찾아내는 데 사용한다


Random Sampling

  • 데이터 분포에 따른 sampling으로 ndarray를 생성
  • np.random.uniform(low=0.0, high=1.0, size=None) : 균등분포
  • np.random.normal(loc=0.0, scale=1.0, size=None) : 정규분포

많이 사용되는 표준분포


초기화 및 샘플링 - 강의 중 실습 내용


import numpy as np
a = np.arange(10)
print(a)
출력 : [0 1 2 3 4 5 6 7 8 9]
a = np.arange(1,21)
print(a)
출력 : [  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 ]
a = np.arange(1,21, 3)
print(a)
출력 : [ 1  4  7 10 13 16 19 ]
a = np.arange(1,21, 3, dtype=float)
print(a)
출력 : [ 1.  4.  7. 10. 13. 16. 19 ] 
a = np.arange(1,11, 0.3, dtype=float)
print(a)
출력 : 
[ 1.   1.3  1.6  1.9  2.2  2.5  2.8  3.1  3.4  3.7  4.   4.3  4.6  4.9
  5.2  5.5  5.8  6.1  6.4  6.7  7.   7.3  7.6  7.9  8.2  8.5  8.8  9.1
  9.4  9.7 10.  10.3 10.6 10.9]
a = np.arange(1,110, 0.3)
d = 13
n = a.size % d
try:
  b = a.reshape(-1,d)
except:
  b = a[:-n].reshape(-1,d)
print(n)
print(b)
출력 : 0
출력 : 
[[  1.    1.3   1.6   1.9   2.2   2.5   2.8   3.1   3.4   3.7   4.    4.3  4.6]
 [  4.9   5.2   5.5   5.8   6.1   6.4   6.7   7.    7.3   7.6   7.9   8.2  8.5]
 [  8.8   9.1   9.4   9.7  10.   10.3  10.6  10.9  11.2  11.5  11.8  12.1  12.4]
 [ 12.7  13.   13.3  13.6  13.9  14.2  14.5  14.8  15.1  15.4  15.7  16.  16.3]
 [ 16.6  16.9  17.2  17.5  17.8  18.1  18.4  18.7  19.   19.3  19.6  19.9  20.2]
 [ 20.5  20.8  21.1  21.4  21.7  22.   22.3  22.6  22.9  23.2  23.5  23.8  24.1]
 [ 24.4  24.7  25.   25.3  25.6  25.9  26.2  26.5  26.8  27.1  27.4  27.7  28. ]
 [ 28.3  28.6  28.9  29.2  29.5  29.8  30.1  30.4  30.7  31.   31.3  31.6  31.9]
 [ 32.2  32.5  32.8  33.1  33.4  33.7  34.   34.3  34.6  34.9  35.2  35.5  35.8]
 [ 36.1  36.4  36.7  37.   37.3  37.6  37.9  38.2  38.5  38.8  39.1  39.4  39.7]
 [ 40.   40.3  40.6  40.9  41.2  41.5  41.8  42.1  42.4  42.7  43.   43.3  43.6]
 [ 43.9  44.2  44.5  44.8  45.1  45.4  45.7  46.   46.3  46.6  46.9  47.2  47.5]
 [ 47.8  48.1  48.4  48.7  49.   49.3  49.6  49.9  50.2  50.5  50.8  51.1  51.4]
 [ 51.7  52.   52.3  52.6  52.9  53.2  53.5  53.8  54.1  54.4  54.7  55.  55.3]
 [ 55.6  55.9  56.2  56.5  56.8  57.1  57.4  57.7  58.   58.3  58.6  58.9  59.2]
 [ 59.5  59.8  60.1  60.4  60.7  61.   61.3  61.6  61.9  62.2  62.5  62.8  63.1]
 [ 63.4  63.7  64.   64.3  64.6  64.9  65.2  65.5  65.8  66.1  66.4  66.7  67. ]
 [ 67.3  67.6  67.9  68.2  68.5  68.8  69.1  69.4  69.7  70.   70.3  70.6  70.9]
 [ 71.2  71.5  71.8  72.1  72.4  72.7  73.   73.3  73.6  73.9  74.2  74.5  74.8]
 [ 75.1  75.4  75.7  76.   76.3  76.6  76.9  77.2  77.5  77.8  78.1  78.4  78.7]
 [ 79.   79.3  79.6  79.9  80.2  80.5  80.8  81.1  81.4  81.7  82.   82.3  82.6]
 [ 82.9  83.2  83.5  83.8  84.1  84.4  84.7  85.   85.3  85.6  85.9  86.2  86.5]
 [ 86.8  87.1  87.4  87.7  88.   88.3  88.6  88.9  89.2  89.5  89.8  90.1  90.4]
 [ 90.7  91.   91.3  91.6  91.9  92.2  92.5  92.8  93.1  93.4  93.7  94.  94.3]
 [ 94.6  94.9  95.2  95.5  95.8  96.1  96.4  96.7  97.   97.3  97.6  97.9  98.2]
 [ 98.5  98.8  99.1  99.4  99.7 100.  100.3 100.6 100.9 101.2 101.5 101.8  102.1]
 [102.4 102.7 103.  103.3 103.6 103.9 104.2 104.5 104.8 105.1 105.4 105.7  106. ]
 [106.3 106.6 106.9 107.2 107.5 107.8 108.1 108.4 108.7 109.  109.3 109.6  109.9]]
a = np.zeros((3,5))
print(a)
출력 : 
[[0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]]
b = np.ones((3,5))
print(b)
출력 : 
[[1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]]
b1 = np.ones((3,5)) * 2
print(b1)
출력 : 
[[2. 2. 2. 2. 2.]
 [2. 2. 2. 2. 2.]
 [2. 2. 2. 2. 2.]]
c = np.empty((3,5))
print(c)
출력 : 
[[0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]]
a = np.array( [[2,3],[4,5],[6,7]])
print(a)
print(a.shape)
출력 : 
[[2 3]
 [4 5]
 [6 7]]
출력 : (3, 2) 
b = np.zeros_like(a)
print(b)
출력 : 
[[0 0]
 [0 0]
 [0 0]]
b1 = np.ones_like(a)
print(b1)
출력 : 
[[1 1]
 [1 1]
 [1 1]]
a = np.eye(4, dtype=int)
print(a)
출력 : 
[[1 0 0 0]
 [0 1 0 0]
 [0 0 1 0]
 [0 0 0 1]]
b = np.eye(3,5, dtype=int)
print(b)
출력 : 
 [0 1 0 0 0]
 [0 0 1 0 0]]
b1 = np.eye(3,5, k=2, dtype=int)
print(b1)
출력 : 
[[0 0 1 0 0]
 [0 0 0 1 0]
 [0 0 0 0 1]]
a = np.arange(15).reshape(3,5)
print(a)
출력 : 
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]
d = np.diag(a)
print(d)
출력 : [ 0  6 12]
d = np.diag(a, k=2)
print(d)
출력 : [ 2  8 14]
a = np.random.uniform(0,1.0, 10).reshape(2,5)
print(a)
출력 : 
[[0.34994398 0.79685899 0.99928905 0.14128312 0.70858612]
 [0.31581712 0.92091744 0.88537853 0.28639324 0.15929932]]
b = np.random.uniform(0,1.0, (2,5))
print(b)
출력 :
[[0.81049346 0.62670403 0.06075431 0.45952006 0.25566875]
 [0.55975794 0.98396203 0.21019873 0.80737271 0.66705947]] 
c = np.random.normal(0,1, 10)
print(c)
출력 : 
[-1.92540058 -0.60097753  0.38332519 -0.24462928  1.26916321  1.84714642
  1.72690107 -0.96074994  0.91260084  1.07231518]

profile
현재 : C# WPF 개발자 / 목표 : AI 의료 영상 분석 연구원

0개의 댓글