인수 및 반환 유형으로 numpy 배열을 갖는 함수를 올바르게 정의하는 방법은 무엇입니까?

여파

보시다시피 두 가지 옵션이 있습니다. (여기서 numpy는 np로 가져옴)

1. 람다 식 사용

이것은 간단한 함수를 다룰 때 사용할 수 있습니다. 함수 f : (x, y) = (x ^ 2, x + y)를 구현하고 싶다고 가정 해 보겠습니다. 그러면 다음과 같은 것이 작동 할 것으로 예상합니다.

f = lambda x,y : x**2, x + y

f = lambda x,y : (x**2, x + y)

내가 print(f(np.array([[1],[3]],float)))또는 print(f(np.array([1,3],float))). 그러나 이러한 람다 식의 변형이 작동하지 않습니다.

2. "적절한"기능 정의

그러나 이것은 작동합니다.

def f(vec):
    return np.array([vec[0] ** 2, vec[0] + vec[1]])

그러나 구문이 최적입니까? 위의 "적절한"함수를 벡터화하지 않으려면 어떻게해야합니까? 전체적으로 numpy-array 값을 취하는 numpy-array 값 함수를 어떻게 정의합니까?

hpaulj

lambda또는 을 사용하는지 또는 def로컬로 정의 된 변수로 계산을 수행 하는지는 실제로 중요하지 않습니다 . 함수를 사용하는 경우 입력 인수의 수가 정의와 일치해야합니다.

하지만 간단한 대화 형 예제로

두 가지 변수를 정의합니다.

In [121]: x, y = 1,3                                                                           
In [122]: x**2, x+y                                                                            
Out[122]: (1, 4)             # returns a tuple

목록을 정의하십시오.

In [125]: vec = [1,3]                                                                          
In [126]: vec[0]**2, vec[0]+vec[1]                                                             
Out[126]: (1, 4)             # same tuple

또는 배열 :

In [127]: arr = np.array([1,3])                                                                

[126] 이것도 작동하지만 배열 인덱싱은 느립니다.

배열은 요소뿐만 아니라 전체 배열로 작업 할 때 가장 좋습니다. 예를 들어 배열의 모든 항을 제곱하거나 합산 할 수 있습니다.

In [128]: arr**2, arr.sum()                                                                    
Out[128]: (array([1, 9]), 4)

이러한 계산은 모양 (2,)뿐만 아니라 모든 크기의 배열로 작동합니다.

위의 모든 튜플은 배열로 변환 할 수 있습니다.

In [133]: np.array([x**2, x+y])                                                                
Out[133]: array([1, 4])

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

함수 'lower'가 반환 유형 및 입력 유형으로 int를 갖는 이유는 무엇입니까?

Excel에서이 중첩 IF 함수의 형식을 올바르게 지정하는 방법은 무엇입니까?

인텔 프로세서의 -march 및 -mtune을 올바르게 결정하는 방법은 무엇입니까?

상위 유형의 속성을 기반으로 중첩 유형의 필터로 OData를 올바르게 쿼리하는 방법은 무엇입니까?

OpenGL 변환을 위해 행렬로 수학을 올바르게 수행하는 방법은 무엇입니까?

.get_queryset ()을 재정의 할 때 오류를 올바르게 반환하는 방법은 무엇입니까?

swagger 및 flask restplus로 배열 매개 변수를 올바르게 렌더링하는 방법은 무엇입니까?

수직 numpy 배열 (1D)을 일반적인 수평 기본 형식으로 되 돌리는 방법은 무엇입니까?

std :: function을 래핑하고 반환 및 인수 유형에 쉽게 액세스 할 수있는 방법은 무엇입니까?

df를 시계열로 올바르게 변환하고 동일한 파이프 라인에서 정리하는 방법은 무엇입니까?

일반 고정 길이 배열로 함수를 정의하는 방법은 무엇입니까?

배열 목록의 모든 개체를 인쇄하고 수량을 올바르게 계산하는 방법은 무엇입니까?

유형 호환성을 확인하여 두 개체 속성의 값을 이름으로 바꾸는 Typescript 함수를 정의하는 방법은 무엇입니까?

함수가 고차원 배열을 반환 할 때 numpy apply_along_axis를 수행하는 방법은 무엇입니까?

Blob에서 csv 파일의 문자 집합을 올바르게 수정하는 방법은 무엇입니까?

함수 반환을 기반으로 다른 요소를 표시하는 올바른 방법은 무엇입니까?

복소수와 numpy를 다룰 때 파이썬에서 dtype을 올바르게 지정하는 방법은 무엇입니까?

반응에서 fetch api 호출을 올바르게 만들 수있는 방법은 무엇입니까?

NIM에서 명령 행을 통해 인수를 올바르게 전달하는 방법은 무엇입니까?

Java에서 함수를 올바르게 재정의하는 방법은 무엇입니까?

인수의 함수 반환 유형을 기반으로 typescript 조건부 유형을 지정하는 방법

모든 축을 올바르게 설정하는 데이터를 처음 플로팅 할 때 실행되는 matplotlib 함수의 이름은 무엇입니까?

문자열 배열의 정수만 numpy의 부동 소수점 배열로 변환하는 방법은 무엇입니까?

R의 함수가 지정된 마지막 변수를 기반으로 값을 업데이트하지 못하게하는 방법은 무엇입니까?

Awake (), Start (), Update 및 FixedUpdate ()와 같은 Unity의 콜백 함수를 올바르게 상속하는 방법은 무엇입니까?

std :: set :: begin ()에서 반환 된 반복자의 역 참조 된 유형을 올바르게 추론하는 방법은 무엇입니까?

반올림하지 않고 float를 정수로 엄격하게 변환하는 방법은 무엇입니까?

[]을 반환하는 함수를 Traversable로 변환하는 방법은 무엇입니까?

동등한 값을 반환하는 문자열로 두 세트를 취하는 함수를 만드는 방법은 무엇입니까? (자바 스크립트)