본문 바로가기

python

파이썬 numpy에서 알아 본 것들(사전 형식으로 정리)

 

 

shape

 

 

기본적인 shape는

 

만약 m*n의 행렬인 A가 있다면

 

A.shape   가 나타내는 값은 (m, n)이다  #print(A.shape) 하면 (m,n)이 출력됨

 

 

 

코드 보다가 shape[0] 붙은게 있어서 이게 뭔가 해서 시험해봄

 

1.

import numpy as np

R = np.floor(10*np.random.random((2, 3))) # 10 이하의 숫자로 난수 생성해서 2*3 행렬 만들음
print(R)

print(R.shape[0])
print(R.shape[1])

출력 결과-------------------------------------------

 

[[6. 0. 5.]
 [2. 1. 0.]]
2
3

------------------------------------------------------

 

shape[0] 은 행의 개수

shape[1] 은 열의 개수

 

인 것 같음

 

 

 

2. shape[2] 를 출력하면 범위 벗어나겠지 하고 시험해봄

import numpy as np

R = np.floor(10*np.random.random((2, 3))) # 10 이하의 숫자로 난수 생성해서 2*3 행렬 만들음
print(R)

print(R.shape[0])
print(R.shape[1])
print(R.shape[2])

 

출력 결과---------------------------------------------------------------------------------------------------

 

[[2. 3. 4.]
Traceback (most recent call last):
 [9. 0. 9.]]
  File "D:/Artive 9 Application/Python36/workspace/read_data/read_data.py", line 56, in <module>
2
    print(R.shape[2])
3
IndexError: tuple index out of range

-------------------------------------------------------------------------------------------------------

 

벗어남

 

 

3. 그럼 애초에 2차행렬이 아니고 3차 행렬 같은 걸로 바꾸면                                   (이 표현이 맞나?)

 

import numpy as np

R = np.floor(10*np.random.random((2, 3, 4))) # 10 이하의 숫자로 난수 생성해서 2*3 행렬 만들음
print(R)

print(R.shape[0])
print(R.shape[1])
print(R.shape[2])

예상 출력 결과는

 

R.shape[2] 가 4값을 나타낼 거라는 것

 

출력 결과 --------------------------------------------

 

[[[3. 4. 4. 1.]
  [6. 2. 6. 5.]
  [6. 5. 5. 4.]]

 

 [[5. 0. 3. 8.]
  [1. 9. 0. 6.]
  [5. 4. 2. 2.]]]
2
3

4

------------------------------------------------------------

 

2개의 3*4행렬이 생겼음          // 덤으로 N차 행렬이 생성되는 구조도 알게 되었음

 

그리고 예상대로 4 출력 되었음