a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
print(a.shape)
#[[1, 2, 3],
[4, 5, 6]]
#(2, 3)
range와 같은 기능
np.arrange
d = np.eye(2) # Create a 2x2 identity matrix
print(d)
#[[1. 0.]
# [0. 1.]]
np.random.random((2, 2))
=> 2바이2 행렬에 0~1 사이의 랜덤한 값이 저장된다.
np.random.randn(2,2)
=> 2바이2인 행렬 표준정규분포 그러니까 mean값이 0, 표준편차가 1
np.random.normal(10, 2, [2,2])
=> 가우시안 분포에서 샘플링을 하는데
10인 mean 표준편차가 2
row_r1 = a[1, :] # Rank 1 view of the second row of a
row_r2 = a[1:2, :] # Rank 2 view of the second row of a
row_r3 = a[[1], :] # Rank 2 view of the second row of a
print(row_r1, row_r1.shape)
print(row_r2, row_r2.shape)
print(row_r3, row_r3.shape)
=> 로우만 뽑기
# We can make the same distinction when accessing columns of an array:
col_r1 = a[:, 1]
col_r2 = a[:, 1:2]
print(col_r1, col_r1.shape)
print()
print(col_r2, col_r2.shape)
=> 칼럼만 뽑기
=> 이렇게 세로로도 데이터를 관리하고 배우면 되는 부분인듯
import numpy as np
a = np.array([[1,2], [3, 4], [5, 6]])
bool_idx = (a > 2) # Find the elements of a that are bigger than 2;
# this returns a numpy array of Booleans of the same
# shape as a, where each slot of bool_idx tells
# whether that element of a is > 2.
print(bool_idx)
=> 이 조건을 먹인 값의 value 값 뽑기
# We use boolean array indexing to construct a rank 1 array
# consisting of the elements of a corresponding to the True values
# of bool_idx
print(a[bool_idx])
# We can do all of the above in a single concise statement:
print(a[a > 2])
x = np.array([[1,2],[3,4]])
y = np.array([[5,6],[7,8]])
v = np.array([9,10])
w = np.array([11, 12])
# Inner product of vectors; both produce 219
print(v.dot(w))
print(np.dot(v, w))
print(v @ w)
=> (911) + (1012) = 219
x = np.array([[1,2],[3,4]])
print(np.sum(x)) # Compute sum of all elements; prints "10"
print(np.sum(x, axis=0)) # Compute sum of each column; prints "[4 6]"
print(np.sum(x, axis=1)) # Compute sum of each row; prints "[3 7]"
print(x)
print("transpose\n", x.T)
=> T로 쉽게 요소들의 축을 바꿀 수 있다.
=> 코테를 생각해보니 엄청 파괴적인 기능