예를 들어, I have a 누마피 어레이입니다:
data = np.array([[1,1,1],[2,2,2],[3,3,3]])
저는 해당 " vector:";
vector = np.array([1,2,3])
How do I 작동합니까) 에 '으로 나눠 각 행의 따라 데이터' subtract 또는 그러하매 그 결과,
sub_result = [[0,0,0], [0,0,0], [0,0,0]]
div_result = [[1,1,1], [1,1,1], [1,1,1]]
긴 얘기를 파선-짧은: 어떻게 수행합니까 각 행에 대해 하나의 작업을 2D 의 스칼라 각 행에 해당하는 1D 배열 어레이에는?
이미 언급한 것처럼 '없음' 또는 ',' 와 함께 슬라이싱 np.뉴악스 이렇게 좋은 방법입니다. 또 다른 대체 · 방송 등 전치 같이 사용할 수 있다.
(data.T - vector).T
및
(data.T / vector).T
더 높은 치수 어레이에는 스와팩스스 '방법을 사용할 수도 있습니다' 이 '롤라시스 누마피 어레이나 누마피' 기능을. 정말 많이 있을 수 있는 방법이 있습니다.
풀러 http://schmidt. devlib. 브로드캐스트용 대한 설명 http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
data = np.array([[1,1,1],[2,2,2],[3,3,3]])
vector = np.array([1,2,3])
data
# array([[1, 1, 1],
# [2, 2, 2],
# [3, 3, 3]])
vector
# array([1, 2, 3])
data.shape
# (3, 3)
vector.shape
# (3,)
data / vector.reshape((3,1))
# array([[1, 1, 1],
# [1, 1, 1],
# [1, 1, 1]])
변형 () 를 사용하면 치수에는 수행하기 위해 줄 방송:
data: 3 x 3
vector: 3
vector reshaped: 3 x 1
단, 데이터 벡터 '정상' t get / 하지만 doesn& # 39, 운영까지도 대답할 수 있습니다. It 의 각 분할합니다 열 ' ( 각 행일 대신) 에 해당되는 각 요소' 어레이입니다 '벡터'. # 39, '재편' s what you get it& 아니하였으매 경우 '대신' 수 '명시적으로 벡터입니다 1x3 3x1'.
data / vector
# array([[1, 0, 0],
# [2, 1, 0],
# [3, 1, 1]])
data / vector.reshape((1,3))
# array([[1, 0, 0],
# [2, 1, 0],
# [3, 1, 1]])
그냥 일반적인 경우에 사용할 수 있습니다, 답을 stackoverflowuser2010 추가
data = np.array([[1,1,1],[2,2,2],[3,3,3]])
vector = np.array([1,2,3])
data / vector.reshape(-1,1)
이 발쿰치로 너회의 벡터입니다 붙여넣습니다 '열 행렬을 / 벡터'. 원하는 대로 엘레멘트와이즈 작업을 수행할 수 있습니다. 이게 가장 편리한 방법은 그것에 대해 앞으로 적어도 나에게 뒤 (대부분의 경우) 는 같은 내부 메모리를 사용하여 누마피 그냥 보기입니다 it& # 39 의 변형 효율형 너무.