일반적인 기능 : 기능의 설정 요소를 신속하게 진행
일반적인 기능 (ufunc)는 데이터 요소 ndarray 레벨 동작을 수행하는 기능이다. 우리는 간단한 함수로 볼 수있다 벡터화 래퍼 (하나 개 이상의 스칼라와 하나 이상의 스칼라 생성을 허용).
대부분의 일반적인 기능 요소는 간단한 단계의 변형입니다 같은 SQRT 및 특급 등 :
가져올 순이익으로 NumPy와 도착 = np.arange (10 ) 인쇄 (np.sqrt (도착)) ============================= =========== [0. 1. 1.41421356 1.73205081 2. 2.23606798 2.44948974 2.64575131 2.82842712 3 . ] ======================================== 인쇄 (np.exp (도착)) ======================================== [ 1.00000000e + 00 + 00 2.71828183e 7.38905610 E + 00 + 01 2.00855369e 5.45981500e 1.48413159e + 01 + 02 + 02 4.03428793e 1.09663316e + 03 2.98095799e 8.10308393e + 03 + 03 ] ================== ======================
다음 표는 일반적으로 사용되는 모노 및 디카 르 ufunc ufunc을 나열
한 가지 위안 ufunc
기능 |
설명 |
복근, FBS |
계산 정수, 부동 소수점 또는 복소수의 절대 값. 복잡하지 않은 값에 대해, 당신은 빠른 FBS를 사용할 수 있습니다 |
SQRT |
각 요소의 제곱근을 계산하는 것은 도착 ** 0.5에 해당 |
광장 |
각 요소의 제곱을 계산하는 것은 도착 ** 2에 해당 |
특급 |
각 엘리먼트 (E)의 계산 인덱스 |
log1p, LOG2, LOG10, 로그인 | 자연 로그 (베이스 E) 상기 (10) 기재가 로그되고 2 로그 (1 + X)를베이스 로그 |
기호 | 각 요소의 부호 계산 : 1 (포지티브), 0 (제로) - 1 (네거티브) |
올림 | 실링 요소의 값 이상, 즉 가장 작은 정수 값을 계산 |
바닥 | 값은 각 층 요소에 대해 계산되고, 그 최대 정수 값 이하인 |
린 | 각 요소의 값은 가장 가까운 정수로 유지 DTYPE 반올림 |
modf는 | 정수 부분과 두 개의 독립적 인 배열의 배열로 반환 소수 |
때는 isNaN | a는 부울 배열 "NaN 값 (이것은 숫자가 아닌) 무엇인가"반환 |
isFinite에, isinf | 각각에 반환 대표 부울 배열 "무한 어떤 요소" "요소가 유한 어느 (비-INF, 비 NaN이)"또는 |
왜냐하면, 곤봉, 죄, 출생, 황갈색, 비린내 | 일반 및 쌍곡선 삼각 함수 |
ARCCOS, arccosh, 다 arcsin, arcsinh, 아크 탄젠트, arctanh | 역 삼각 함수 |
logical_not | 각 요소의 notx의 진정한 가치를 계산. 등가 -arr |
두 위안 ufunc
기능 | 설명 |
더하다 | 합에 대응하는 배열 요소 |
덜다 | 제 배열에서 제 2 어레이의 소자를 감산 |
곱하다 | 어레이 요소는 승산 |
분할, floor_divide | 부문 또는 아래로 라운드 나눌 방법 (나머지를 폐기) |
힘 | 어레이 A의 첫 번째 요소는 제 2 어레이의 소자 B에 따른 행, A, B를 산출 전력 |
최대 FMAX | 최대 요소 레벨의 계산. FMAX는 NaN를 무시 |
최소 FMIN | 요소 계산 단계의 최소 수. FMIN는 NaN를 무시 |
모드 | 모듈로 연산 단계 소자 (나눗셈의 나머지) |
copysign | 배열의 첫 번째 값과 두 번째 복사본의 배열의 심볼 값들 |
이상, greater_equal, 이하 less_equal, 동등 not_equal |
비교 연산 요소 레벨을 수행하고, 궁극적으로 부울 배열을 생산하고 있습니다. 연산자에 대응 중위>,> =, <, <=, ==,! = |
logical_and, logical_or, logical_xor | 논리 연산의 참값 소자 와이즈 수행. 이 연산자를 중위에 해당 &, |, ^ |
II는. 데이터 처리를 사용하여 어레이
NumPy와 배열 우리 많은 데이터 처리 작업은 간단한 배열 식으로 표현 될 수 있도록 (달리 사이클을 쓸 필요). 대신 배열 식 루프 방식을 사용하는 통상적으로 벡터링 함. 크기의 하나 또는 두 개의 명령 빠르게 (또는 그 이상), 특히 다양한 수치 계산에 해당하는 순수 파이썬 예보다 일반적 벡터화 어레이 동작.
우리는 함수 SQRT을 계산하려한다고 가정 (X ^ 2 Y ^ 2 +) 값 (격자 형)의 집합은 np.meshgrid 함수는 2 차원 배열을 받아, 두 어레이에 대응 (이차원 행렬을 발생 모든 (x, y)의 쌍)
#의 코딩 :. UTF 8- 오기 PLT의 AS matplotlib.pyplot 오기 NP의 AS NumPy와 포인트 = np.arange (-5,5,0.01) # 1000 등 간격의 포인트 , YS = XS np.meshgrid (점, 점) 전단 ( XS) 전단 (YS) [ -5. ... 4.97 4.98 4.99 -4.99 -4.98 ] [ -5. ... 4.97 4.98 4.99 -4.99 -4.98 ] [ -5. ... 4.97 4.98 -4.99 -4.98 4.99 ] ... [ -5. 4.97 4.98 4.99 -4.99 -4.98 ... ] [ -5. ... 4.98 4.99 -4.99 -4.98 4.97 ] [-5. -4.99 -4.98 4.97 4.98 4.99 ... ] ====================================== == [ -5. -5. -5. ... -5. -5. -5 . ] [ -4.99 -4.99 -4.99 -4.99 -4.99 -4.99 ... ] [ -4.98 -4.98 -4.98 -4.98 -4.98 -4.98 ... ] ... [ 4.97 4.97 4.97 4.97 4.97 4.97 ... ] [ 4.98 4.98 4.98 4.98 4.98 4.98 ... ] [ 4.99 4.99 4.99 4.99 4.99 4.99 ...]
이제 두 개의 부동 소수점 숫자로이 두 배열은 표현과 같이 쓸 수있다
np.sqrt Z는 = (X + 2 YS ** 2 ) 잉크 (z) ============================== ========== [ 7.07106781 7.06400028 7.05693985 7.04988652 7.05693985 7.06400028 ... ] [ 7.06400028 7.05692568 7.04985815 7.04279774 7.04985815 7.05692568 ... ] [ 7.05693985 7.04985815 7.04278354 7.03571603 7.04278354 7.04985815 ... ] ... [ 7.04988652 7.04279774 7.03571603 7.03571603 7.04279774 7.0286414 ... ] [ 7.05693985 7.04985815 7.04278354 7.03571603 7.04278354 7.04985815 ... ] [ 7.06400028 7.05692568 7.04985815 7.04279774 7.04985815 7.05692568 ...]]
plt.imshow (Z, cmap를 = plt.cm.gray) plt.colorbar () plt.title ( " $ \ SQRT 이미지 플롯 {X ^ 2 + y ^ 2} 값 그리드 $ " ) plt.show () # 显示图形
1. 상태 로직 어레이의 동작은 다음과 같이 표현
# Numpy.where 함수 경우 조건 Y 다른 버전의 삼원 발현 벡터 X이다. 우리가 배열에서 부울 배열과 두 개의 값이 있다고 가정
np.array xarr = ([6.1,6.2,6.3,6.4,6.5])
Yarr np.array = ([8.1,8.2,8.3,8.4,8.5])
COND = ([참, 거짓, 참, 거짓 np.array 참])
# 이제 우리는 COND의 값에 따라 값 xarr 및 yarr을 선택합니다 설명 : cond에 해당하는 경우, 그렇지 않으면 xarr 값을 선택 값 yarr을 선택합니다. 다음과 같이 목록 이해하는 연습입니다
결과 = [X, Y, ZIP에서 Z (xarr, Yarr에서 cond)에 대한합니다 (다른 X Y Z IF)]
인쇄 (결과)
#이 몇 가지 문제가있다 : 첫째, 그것을 (모든 작업이 순수 파이썬을 수행하기 때문에) 큰 배열 처리 속도가 두 번째, 빠른되지 않습니다 :하지 다차원 배열을 위해.
np.where # 사용되는 경우, 상기 기능은 매우 간단한에 기록 될 수있다
결과 = np.where (COND, xarr, Yarr)
출력 (결과)
# 1 번째 및 세 번째 파라미터 수를 배열하지 않아도 np.where 그들은 스칼라 값이 될 수있다. 전형적으로 다른 배열에 따른 새로운 배열을 생성하는 데 사용되는 데이터를 분석한다.
# 매트릭스의 임의의 배열을 가정하면, 우리는 (2 개) 및 음의 값 모두를 대체 -2 모두 양의 값을 사용하여 대체 np.where 매우 간단 할 것인지
도착 np.random.randn = (4,4)
인쇄 (ARR)
new_arr = np.where (ARR> 0,2, -2)
# 전단 (new_arr)
# 전단 (np.where (ARR> 0.2, ARR)) 값만 세트 # 2
# 전단 (도착 np.where (<0,0 , 도착)) # 0은 음의 값으로 만 설정
# 요약
두 가지의 np.where # :
# 먼저 사용 np.where (조건 X, Y 있으면)이 만족 (condituons) 예로서, 변수 Y의 어레이로서 배열 변수 다른 X
인덱스에 대응하는 배열 수득 # 번째 구문 np.where (조건)
# 1 차원 배열
X = np.arange (16)
인쇄 (X [np.where (X> 5).])
# 출력 (어레이 (INT64 DTYPE =), 6 ,. 7 ,. 8 ,. 9, 10 ,. 11, 12이, 13이며, 14, 15.])
차원 # 어레이
X = np.arange (16) .reshape (4,4)
전단 (X)
인쇄 (np.where (X>. 5)) #는 한 차원 좌표 앞의 좌표 인 2 차원 좌표를 다음
2. 수학적 통계 방법은
어레이의 수학적 함수는 전체 어레이 또는 축들의 세트의 통계 데이터를 산출 할 수있다.
np.random.randn ARR = (5,4)
인쇄 (ARR)
인쇄 (arr.mean ()) # 축없는 값의 m * n을 평균 수가, 실수 복귀 설정된
인쇄 (arr.sum ())
인쇄 (arr.mean (축선 = 1) ) #axis = 1 : 각 행의 평균 반환 m 요소들의 1 차원 배열
인쇄 (arr.mean (축선 = 0) ) = 0 #axis : 평균 각 열에 N 개의 1 차원 배열의 요소를 리턴
# 기타 이러한 cumsum, 중합 cumprod 법을 등은 아니지만, 그 결과는 중간 이루어지는 배열
arr1 = np.array ([1,2,3] , [4 5,6])
인쇄 (arr1.cumsum (0)) 각 열의 엘리먼트 #에 대응하는 누적 첨가
원소의 각각의 행에 대응하는 출력 (arr1.cumsum (1)) # 누적 부가
인쇄 (arr1.cumprod (0)) 축적의 해당 요소를 곱한 각 열에 #
(arr1.cumprod (1)) # 소자의 각 행에 대응하는 출력은 총 곱
통계적 방법의 기본 어레이
방법 |
설명 |
합집합 |
전체 또는 배열 요소 축 방향으로 합계의 일부. 합산 배열 길이가 0 인 영 |
평균 |
산술 평균. 그것은 NaN이 제로 길이의 배열을 의미 |
표준이었다 |
분산과 표준 편차는 각각 자유의 조정도 (기본 N) |
최대, 최소 |
최대 값과 최소값 |
argmin, argmax |
각각 최소 및 최대 요소 인덱스 |
cumsum |
모든 요소의 누적 합계 |
cumprod |
모든 요소의 누적 생성물 |
# 정렬
파이썬에 내장 된 목록 유형과 같은 #, NumPy와 배열을 정렬 할 수도 있습니다 정렬 방법
np.array ARR = ([1, 4,2], [7,2,6])
인쇄 (arr.sort (0)) # 소형 ~ 대형의 각 열에 정렬 0
인쇄 (ARR)
프린트 (arr.sort (1)) # 소형 ~ 대형의 각 행에 대하여 1 - 정렬
인쇄 (도착)
# 웰의 유일한 논리적 컬렉션
#Numpy은 일차원 ndarray 일부 기본적인 동작을 제공한다. 는 가장 일반적으로 사용되는 몇 가지 배열에서 고유 한 값을 찾기 위해 그것을 np.unique 결과 반환 분류 될 가능성이 높습니다
이름 = np.array ([ '고베' , '캘빈', 'Michale', '제임스' '캘빈」, 「고베」, 「고베」, 「캘빈'])
인쇄 (np.unique (이름))
번호 np.array = ([2,3,8,5,8,8,24,1,6 . 3)
인쇄 (np.unique (번호))
다음 표에 NumPy와 집계 함수 :
방법 |
설명 |
고유 (X) |
유일한 X의 요소, 그리고 순서로 결과를 반환 |
intersect1d (X, Y) |
X 및 Y는 공통 요소에 산출 결과를 순서에 반환 |
union1d (X, Y) |
결과를 순서에 X 및 Y 집합을 산출하고 반환 |
in1d (X, Y) |
"X와 Y의 요소를 포함하는"부울 배열을 가져옵니다 |
setdiff1d (X, Y) |
아니라 X의 Y 방향, 즉 요소의 차이의 양을 설정 |
cumprod |
모든 요소의 누적 생성물 |