>>> y
array([[ 5, 35, 80, 45],
[21, 64, 22, 72],
[48, 7, 44, 22]])
위 배열 객체의 합을 계산하기 위해 np.sum(객체, axis=None)함수를 사용한다.
위 함수의 매개변수 axis는 2차원의 배열에서 계산을 위한 축을 설정하는 것으로 기본값은 None이다. 이것은 객체의 행, 열을 무시하고 flat 형태 즉 1행의 형태로 전환하여 합을 구한다는 것이다. axis=0(열), 1(행)을 의미한다.
위 객체 y를 기준으로 보자.
>>> np.sum(y) #y 객체를 1행의 flat 형태로 전환하여 모든 원소의 합
465
>>> np.sum(y, axis=1) #행 기준으로 계산
array([165, 179, 121])
>>> np.sum(y, axis=0) #열 기준으로 계산
array([ 74, 106, 146, 139])
아래 코드의 경우는 예상밖의 결과를 반환한다. 열기준으로 합을 계산하므로 y[1]의 각 원소가 그대로 반환할 것으로 예상되지만 모든 원소의 합을 반환한다.
>>> np.sum(y[1], axis=0)
179
반대로 axis=1 즉 행기준으로 합을 계산하면 에러가 발생한다.
>>> np.sum(y[1], axis=1)
Traceback (most recent call last):
...
AxisError: axis 1 is out of bounds for array of dimension 1
>>> y[1]
array([21, 64, 22, 72])
y[1]의 차원을 보자.
>>> y[1].shape
(4,)
위의 결과는 파이썬은 한 행으로 이루어진 데이터 셋을 기본적으로 열(column)으로 인식한다는 것을 보여준다.
수학적으로 표준벡터의 기준은 열벡터이다. 그러므로 객체 y[1]은 1행이 아니라 4행인 1열인 배열이 아닌 1열 벡터가 되는 것이다. 그러므로 합은 열기준만 계산이 가능하다.
열벡터를 행렬로 표현하기 위해서는 인덱스에 콜론을 사용하여 범위를 지정해 주어야 한다. 단일한 하나의 행 만을 추출할 경우는 위에서 언급한 것과 같이 열벡터로 인식하기 때문에 아래 코드의 결과 처럼 차원에서 열의 수가 표시되지 않는다.
>>> y[:0].shape
(0, 4)
>>> y[0].shape
(4,)
array([[ 5, 35, 80, 45],
[21, 64, 22, 72],
[48, 7, 44, 22]])
위 배열 객체의 합을 계산하기 위해 np.sum(객체, axis=None)함수를 사용한다.
위 함수의 매개변수 axis는 2차원의 배열에서 계산을 위한 축을 설정하는 것으로 기본값은 None이다. 이것은 객체의 행, 열을 무시하고 flat 형태 즉 1행의 형태로 전환하여 합을 구한다는 것이다. axis=0(열), 1(행)을 의미한다.
위 객체 y를 기준으로 보자.
>>> np.sum(y) #y 객체를 1행의 flat 형태로 전환하여 모든 원소의 합
465
>>> np.sum(y, axis=1) #행 기준으로 계산
array([165, 179, 121])
>>> np.sum(y, axis=0) #열 기준으로 계산
array([ 74, 106, 146, 139])
아래 코드의 경우는 예상밖의 결과를 반환한다. 열기준으로 합을 계산하므로 y[1]의 각 원소가 그대로 반환할 것으로 예상되지만 모든 원소의 합을 반환한다.
>>> np.sum(y[1], axis=0)
179
반대로 axis=1 즉 행기준으로 합을 계산하면 에러가 발생한다.
>>> np.sum(y[1], axis=1)
Traceback (most recent call last):
...
AxisError: axis 1 is out of bounds for array of dimension 1
>>> y[1]
array([21, 64, 22, 72])
y[1]의 차원을 보자.
>>> y[1].shape
(4,)
위의 결과는 파이썬은 한 행으로 이루어진 데이터 셋을 기본적으로 열(column)으로 인식한다는 것을 보여준다.
수학적으로 표준벡터의 기준은 열벡터이다. 그러므로 객체 y[1]은 1행이 아니라 4행인 1열인 배열이 아닌 1열 벡터가 되는 것이다. 그러므로 합은 열기준만 계산이 가능하다.
열벡터를 행렬로 표현하기 위해서는 인덱스에 콜론을 사용하여 범위를 지정해 주어야 한다. 단일한 하나의 행 만을 추출할 경우는 위에서 언급한 것과 같이 열벡터로 인식하기 때문에 아래 코드의 결과 처럼 차원에서 열의 수가 표시되지 않는다.
>>> y[:0].shape
(0, 4)
>>> y[0].shape
(4,)
댓글
댓글 쓰기