Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬의 벡터화

<시간/>

이 기사에서는 벡터화 및 Python 3.x를 사용한 구현과 관련된 다양한 기술에 대해 배웁니다. 또는 그 이전.

벡터화란 무엇입니까?

벡터화는 루프를 사용하지 않고 배열을 구현하는 기술입니다. 대신 함수를 사용하면 코드의 실행 시간과 실행 시간을 효율적으로 최소화하는 데 도움이 됩니다. 단일 출력을 생성하기 때문에 스칼라 곱이라고도 하는 벡터의 내적, 벡터의 (길이 X 길이)와 같은 차원의 정방 행렬을 생성하는 외적, 요소와 같은 배열 대신 벡터에 대해 다양한 연산이 수행되고 있습니다. 동일한 인덱스의 요소와 행렬의 차원을 곱하는 현명한 곱셈은 그대로 유지됩니다.

내적/내적

파이썬의 벡터화

구현을 봅시다

예시

import timeimport numpyimport arrayp =array.array('q') for i in range(100000,200000):p.append(i);q =array.array('q')for i in range(200000, 300000):q.append(i)# 고전적인 내적 =time.process_time()dot_value =0.0;for i in range(len(a)):dot_value +=p[i] * q[i]toc =시간. process_time()print("벡터 배열의 내적 ="+ str(dot_value));print("소요된 계산 시간 =" + str(1000*(toc - tic )) + "ms")n_tic =time.process_time() n_dot_product =numpy.dot(a, b)n_toc =time.process_time()print("\nn_dot_product of vector arrays ="+str(n_dot_product))print("계산 시간 ="+str(1000*(n_toc - n_tic) ))+"ms")

출력

벡터 배열의 내적 =3833313333350000.0계산 소요 시간 =116.51723400000068msn_dot_벡터 배열의 곱 =38333133333500000계산 소요 시간 99 2.5941 

이제 위에서 사용된 기능에 대해 좀 더 자세히 살펴보겠습니다.

외부(a, b) − 이 함수는 두 개의 numpy 배열을 입력 변수로 사용하고 두 벡터의 외적을 반환합니다.

곱하기(a, b) − 이 함수는 두 개의 numpy 배열을 입력 변수로 사용하고 두 배열의 행렬 곱을 반환합니다.

점(a, b) − 이 함수는 두 개의 numpy 배열을 입력 변수로 취하고 두 배열의 내적을 반환합니다.

0((n, m)) − 이 함수는 모양과 유형을 입력 변수로 취하고 0으로 초기화된 주어진 모양과 유형의 행렬을 반환합니다.

process_time() - 이 함수는 현재 프로세스의 시스템 및 사용자 CPU 시간의 합계 값(초 단위)을 반환합니다. 수면 중 경과된 시간은 포함되지 않습니다.

결론

이 기사에서는 Python의 벡터화에 대해 배웠습니다.