[人工知能]2.Pythonベース


1.変数


1)タイプの理解

s = 'hello'
type(s) #str

2)変数変更

a = '10'
type(a) #str
int(a) # 10

2.配列


1)アレイの作成

list = [1, 3, 5, 7, 9, 11, 13, 15] 
list #[1, 3, 5, 7, 9, 11, 13, 15] 

2)アレイ長

list = [1, 3, 5, 7, 9, 11, 13, 15] 
len(list) #8

3)タイルスライス

list = [1, 3, 5, 7, 9, 11, 13, 15] 

list[2:6] #[5, 7, 9, 11] #index 2~5까지 가져옴
list[2:] #index 2 ~ 끝까지, [5, 7, 9, 11, 13, 15]
list[:5] #index 0~4까지 가져옴, [1, 3, 5, 7, 9]
list[:-1] #배열의 첫번째 원소에서 마지막 원소 전까지 [1, 3, 5, 7, 9, 11, 13]

3.Nompi

  • アレイまたはマトリクスの関数集合ライブラリ
  • import numpy as np

    1)オーバーフロー配列

  • アレイ()を使用してアレイを作成できます.作成するアレイの値を[]形式でパラメータに入れると
  • になります.
    narray = np.array([1,3,5,7,9])

    配列の形態

  • narray.shape:Nompi配列の形態
  • を示す
    narray.shape #(5,)
  • 配列には5つの要素があり、
  • を表す.

    2)2 Dアレイ(マトリクス)

  • 行列:横=行、縦=列
  • darray = np.array([[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]]) #2x5 행렬 생성
    darray.shape #array(2,5), 가로가 2, 세로가 5인 행렬

    1▼配列を変える

  • リモデリング():アレイ形状を変更する
  • d52 = darray.reshape(5,2) #5x2 행렬로 변경
    #array([[ 1, 3],
    #     [ 5, 7],
    #     [ 9, 2],
    #     [ 4, 6],
    #     [ 8, 10]])
    2 Dアレイに変更:再構築(要素数)
    d1 = darray.reshape(10,) #가로가 10인 형태의 1차원 배열로 변경
    # array([ 1, 3, 5, 7, 9, 2, 4, 6, 8, 10])

    3)number fi関数


    1π0のみからなるアレイの作成

  • zeros():すべての要素が0(実数)の配列
  • を生成します.
    zero = np.zeros((2,5))
    #array([[0., 0., 0., 0., 0.],
    #     [0., 0., 0., 0., 0.]])

    2π⃣1

  • ones():すべての要素が1(実数)のアレイ
  • を生成します.
    one = np.ones((2,5))
    #array([[1., 1., 1., 1., 1.],
    #     [1., 1., 1., 1., 1.]])

    3πランダムディジタルアレイの作成

  • numberfiランダムライブラリ
  • を使用

    1) rand()

  • 0から1の間のランダム値は均一確率分布の関数
  • を生成する.
    r = np.random.rand(3) 
    #[0.33176596 0.76271979 0.70570591]
    import numpy as np
    import matplotlib.pyplot as plt
    r = np.random.rand(1000)
    plt.hist(r)
    plt.show()

    2) normal()

  • 正規分布(Gauss分布)で値
  • を生成する.
  • 平均値と標準偏差
  • rn = np.random.normal(0,1,3)
    # 평균 0, 표준 편차 1인 정규분포로 무작위 값 3개 추출
    #array([-1.47268374, -0.12373834, -0.20537594])
  • 正規分布:一般分布.平均値を中心とする縦形状
  • rn = np.random.normal(0,1,1000)
    plt.hist(rn)
    plt.show()

    3) randint()

  • 特定の値の間に乱数(整数)
  • を作成する.
    n = np.random.randint(1, 100, 5) #1~100 사이의 숫자 중 5개의 무작위 정수값 추출
    #array([92, 3, 93, 68, 18])

    4) seed()


    乱数を生成するアルゴリズムでは、
  • を含む一定の基準として機能する.
    np.random.seed(0)
    np.random.rand(3)#[0.5488135 0.71518937 0.60276338]
    np.random.seed(0)
    np.random.rand(3)#[0.5488135 0.71518937 0.60276338]
  • は、同じ乱数
  • を生成することができる.

    4、繰り返し文


    1)for文


    こうぞう
    for 변수 in 배열 :
    	반복할 내용
    ex)
    ten = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 
    for i in ten:
    	print(i)

    2) range()

  • 特定区間数の関数
  • を生成する.
    r = range(10) #10개의 숫자를 만듦 
    #range(0, 10)
    list(r) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    1”𔣤range(開始数字、終了数字、スキップ)

    five1 = range(1,6,1)
    list(five1) #[1, 2, 3, 4, 5]
    ten = range(9, -1, -1) #9부터 -1전까지 생성
    list(ten) #[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

    2πゲート速度range()

    for i in range(1,6):
    	print(i)

    条件文


    1)if文


    こうぞう
    if 조건:
    	명령문
    ex)
    n = 15
    if n > 10:
    	print(n)

    2)if-else文


    こうぞう
    if 조건:
    	명령문
    else:
    	명령문
    ex)
    n = 15
    if n % 2 == 0:
    	print('짝수')
    else:
    	print('홀수')

    3)関数の作成


    こうぞう
    def 함수명(매개변수):
    	함수내용
    ex)
    def num(n):
    	if n % 2 == 0:
    		print('짝수')
    	else:
    		print('홀수')
    num(10) #'짝수'