넘파이,NumPy



1. 기본, tmp. 나중에 제대로 rewrite

이하
  • v. 는 벡터/행렬에 대한?
  • np. 는 (당연)

1.1. np.arange

Return evenly spaced values within a given interval https://numpy.org/doc/stable/reference/generated/numpy.arange.html
ex.
> print(np.arange(6))
[0 1 2 3 4 5]
> print(np.arange(6) + 1)
[1 2 3 4 5 6]

1.2. v.dtype

> v.dtype # v의 타입은 무엇인가?
dtype('int32')

1.3. v.reshape

>>> v = np.arange(24) + 1
>>> v.reshape(4, 2, 3)
array([[[ 1,  2,  3],
        [ 4,  5,  6]],

       [[ 7,  8,  9],
        [10, 11, 12]],

       [[13, 14, 15],
        [16, 17, 18]],

       [[19, 20, 21],
        [22, 23, 24]]])
이것의 반대는 flatten.

1.4. v.flatten

바로 위 v.reshape 한 것에 대해,
>>> v.flatten()
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17,
       18, 19, 20, 21, 22, 23, 24])

1.5. v.ravel

저 위 v.reshape 한 것에 대해,
>>> v.ravel()
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17,
       18, 19, 20, 21, 22, 23, 24])
flatten과 똑같이 보이지만... 메모리에 있는 내용을 share하는지 여부가 다르다. 아래 np.may_share_memory 참조.

1.6. np.may_share_memory

>>> np.may_share_memory(v, v.flatten())
False
>>> np.may_share_memory(v, v.ravel())
True

1.7. 입력 1 - np.array

전체를 bracket으로 묶어줘야 오류가 나지 않는다.
>>> X = np.array([1,2],[3,4])
Traceback (most recent call last):
  File "<pyshell#31>", line 1, in <module>
    X = np.array([1,2],[3,4])
TypeError: Field elements must be 2- or 3-tuples, got '3'
>>> X = np.array([[1,2],[3,4]])
>>> print(X)
[[1 2]
 [3 4]]
>>> 

1.8. 입력 2 - concatenative하게.

>>> X = np.arange(1,10).reshape(3,3)
>>> print(X)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
>>>

1.10. np.eye - 항등행렬

단위행렬,unit_matrix 항등행렬,identity_matrix
np.eye(차원, dtype='타입')
타입 생략하면 TBW ... Google:np.eye
ex.
>>> I1 = np.eye(3, dtype='int')
>>> I1
array([[1, 0, 0],
       [0, 1, 0],
       [0, 0, 1]])
>>> I2 = np.eye(3, dtype='float')
>>> I2
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])

1.11. np.ones - 1로만 구성된 행렬

np.eye와 마찬가지로 차원과 타입 지정.
>>> Z1 = np.ones((2, 3)); print(Z1)
[[1. 1. 1.]
 [1. 1. 1.]]
>>> Z2 = np.ones((2, 3), dtype='uint8'); print(Z2)
[[1 1 1]
 [1 1 1]]