NumPy, Numba를 이용한 간단한 사용(둘)

5113 단어
원래는 NLP 제3과 동적 기획을 쓰려고 했는데 시간이 지나서 절반을 썼는데 자신도 할 줄 모른다는 것을 알게 되었다. 이론이 매우 간단하고 동적 기획이 어떻게 된 일인지 알 수 있지만 원본에서 실현하는 것은 좀 어렵다. 지금은 제목을 간단하게 설명하고 친구들도 생각해 볼 수 있다. 예제 1은 현재 1원짜리 동전, 2원짜리 동전, 5원짜리 동전과 10원짜리 동전이 있다.우리는 M금액의 돈을 동전으로 바꾸어 동전의 수량이 가장 적음을 보증해야 한다. 우리의 환법이 무엇인지. 예제 2. 우리는 지금 M미터의 밧줄이 있는데 N단(N의 길이는 반드시 정수)으로 자르고 N단의 밧줄의 길이를 곱해서 곱셈 결과가 최대치임을 보증한다. 우리는 캡처해야 한다. 며칠 후에 다시 돌아와서 이것을 쓰자.우리는 오늘 numpy의 용법을 계속 이야기하고, 이번에는 연습 문제를 통해 numpy의 용법을 봅시다.
문제:arr의 모든 홀수를 -1로 바꾸고 arr를 바꾸지 않습니다.(힌트 where)
arr = np.arange(10) 
out = np.where(arr % 2 == 1, -1, arr) 

where 문법은 매개 변수는 조건이고 매개 변수는 조건을 만족시키는 왜 바뀌어야 하는지, 매개 변수는 셋째array를 입력하는 것이다.
질문: 1차원 그룹을 2줄의 2차원 그룹으로 변환합니다: np.arange(10)
arr = np.arange(10) 
out = np.reshape(2,-1) 
reshape   ( , )      -1,    

질문: 수직 중첩수 그룹 a와 수 그룹 b, 주어짐: a=np.arange(10).reshape(2,-1) b = np.repeat(1, 10).reshape(2,-1) 원하는 출력:
> array([[0, 1, 2, 3, 4],
> [5, 6, 7, 8, 9],
> [1, 1, 1, 1, 1],
> [1, 1, 1, 1, 1]])
a = np.arange(10).reshape(2,-1)
b = np.repeat(1, 10).reshape(2,-1)
np.concatenate([a, b], axis=0) #    
np.vstack([a, b])  #    
np.r_[a, b] #    

방법1:concatenate 문법은 매개 변수의 목록이고, axis=0은 세로로 겹쳐져 있고, 1위는 가로로 되어 있다.
방법2: vstack를 수직으로 쌓고 hstack를 가로로 확장합니다.
방법3:r수직 스택, 확장 c가로 방향입니다.
질문: 하드코딩을 사용하지 않고 다음 모드를 만듭니다.numpy 함수와 아래의 입력 그룹 a만 사용합니다.
지정:
a = np.array([1,2,3])`원하는 출력:
> array([1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3])
a = np.array([1,2,3])
np.r_[np.repeat(a, 3), np.tile(a, 3)]

설명:np.repeat(a,3)에서array([1,1,1,2,2,2,3,3]),np를 획득.tile(a,3)에서array([1,2,3,1,2,3,1,2,1,2,3])를 획득하고 r쌓아올리기
질문: 그룹 a와 그룹 b 사이의 공공 항목을 가져옵니다.ab의 교차
np.intersect1d(a,b)

질문: 그룹 a에서 그룹 b의 모든 항목을 삭제합니다.주어지다array([1,2,3,4,5]) b = np.array([5,6,7,8,9])가 원하는 출력:>array([1,2,3,4])
a = np.array([1,2,3,4,5]) 
b = np.array([5,6,7,8,9])
np.setdiff1d(a,b)

setdiffld를 사용할 때 순서를 주의하십시오. 첫 번째 파라미터에서 두 번째 요소를 포함하는 데이터를 제거하고 나머지 두 번째 파라미터를 포함하는 요소를 포함하지 않습니다.(말이 좀 꼬일 수 있다.)
질문: a와 b 요소가 일치하는 위치를 가져옵니다. 
a = np.array([1,2,3,2,3,4,3,4,5,6]) 
b = np.array([7,2,10,2,7,4,9,4,9,8])
np.where(a==b)

질문: 5에서 10 사이의 모든 항목을 가져옵니다.
a = np.array([2, 6, 1, 9, 10, 3, 27]) 
index = np.where((a >= 5) & (a <= 10))
a[index]

질문: 그룹 arr에서 줄 1과 2를 교환합니다.
arr = np.arange(9).reshape(3,3) 
arr[[1,0,2],:]

질문: 수조arr에서 1과 2를 교환합니다.
arr = np.arange(9).reshape(3,3) 
print(arr)
arr[:, [1,0,2]]

질문: 2차원 그룹arr의 줄을 반전합니다.
arr = np.arange(9).reshape(3,3)
arr[::-1]

질문: 2차원 그룹arr의 열을 반전합니다.
arr = np.arange(9).reshape(3,3)
arr
arr[:, ::-1]

질문: 5x3 모양의 2차원 그룹을 만듭니다. 5에서 10 사이의 무작위 십진수를 포함합니다.
arr = np.arange(9).reshape(3,3)

# Solution Method 1:
rand_arr = np.random.randint(low=5, high=10, size=(5,3)) + np.random.random((5,3))
# print(rand_arr)

# Solution Method 2:
rand_arr = np.random.uniform(5,10, size=(5,3))
print(rand_arr)

여기에 상세한 설명이 필요합니다.arr[a,b]는 바로arr의 슬라이드입니다. 예를 들어 a[2:7:2] # 색인 2부터 색인 7까지 멈추고 간격은 2입니다. 우리의 2차원 그룹에서 우리는','를 사용할 수 있습니다.예를 들어 a[X, M], 이때 우리는 X+1 줄의 M+1 요소를 꺼낸다.
그리고:그리고...병용했어우리는 하나의 예를 보았다. 즉, 모든 것이다. 예를 들어 a[:,2]는 우리가 그의 몇 줄을 관장하는 제3열의 모든 것을 꺼내야 한다는 것이다.동료 a[2,:]도 마찬가지다. 두 번째 줄의 모든 것은 그가 몇 열이든 상관없다.
우리가 위에서 말한 바와 같이: N 두 개의 사칭이 연결된 것은 바로 첫 번째 원소에서 첫 번째 원소를 얻는 것이다. 보폭은 N이다.: 즉 모든 것을 얻는 것이다.스텝 길이가 음수일 때 반전됩니다.다음에는 Nump의 사용법을 계속 얘기해 볼까요~!

좋은 웹페이지 즐겨찾기