위의 코드에서 c는 시작점이 0 이고 끝점이 1이므로 이를 6 점으로 표시하려면 0.2 간격씩 띄우면 됩니다. d는 시작점이 0 이고 끝점이 1인데 5등분으로 나누는데 끝점을 포함하지 않으니 0.2 간격으로 나뉘어 집니다.
배열의 산술 연산자는 새 배열이 만들어지고 그 결과로 채워집니다. 다음의 코드로 NumPy 연산을 설명해 보겠습니다
import numpy as npa = np.array([20,30,40,50])b = np.arange(4)print("배열 a", a)print("arrange로 생성한 b",b)c = a-bprint("c=a-b 의 결과값",c)print("b**2 의 결과값",b**2)print("a의 sine값 * 10 의 결과값",10*np.sin(a))print("a가 35보다 작은지에 대한 비교 결과",a<35)AA= np.array([[1,1],[0,1]])BB= np.array([[2,0],[3,4]])print("AA * BB 의 결과값\n",AA*BB)print("AA @ BB 의 결과값\n",AA@BB)print("AA.dot(BB) 의 결과값\n",AA.dot(BB))
위 코드의 실행 결과는 다음과 같습니다.
a = np.array( [20,30,40,50] ) 1차원 배열로 NumPy 배열을 생성하여 그 이름을 a로 칭합니다.
numpy.arange([start,] stop[, step,], dtype=None) 함수는 start부터 stop 미만까지 step 간격으로 데이터 생성한 후 배열을 만드는 함수입니다. 따라서 b=np.arrange(4) 는 자동으로 [0 1 2 3] 라는 1차원 배열로 데이터가 존재하는 NumPy 배열을 생성합니다.
c=a-b , b**2 등 연산의 결과는 각각의 배열 값에 해당 연산을 한 것으로 계산하여 출력됩니다. *는 행렬곱이 아니라 요소별 곱셈입니다.
벡터의 내적이나 매트릭스의 벡터 곱이나, 메트릭스 곱을 계산하기 위해 @ 혹은 dot 함수를 사용합니다. matrix multiplication에 대해서는 별도로 학습하기 바랍니다.
AA.dot(BB) 메트릭스 곱은 AA[0,0]*BB[0,0]+AA[0,1]*BB[1,0]=5, AA[0,0]*BB[0,1]+AA[0,1]*BB[1,1]=4, AA[1,0]*BB[0,1]+AA[1,1]*BB[1,1]=3, AA[1,0]*BB[0,1]+AA[1,1]*BB[1,1]=4 가 나옵니다.