반응형
Numpy 배열의 열을 반복하는 방법은 무엇입니까?
내가 가지고 있고 mxn 배열이라고 가정합니다. 이 배열의 각 열을 함수에 전달하여 전체 열에 대해 일부 작업을 수행하고 싶습니다. 배열의 열을 어떻게 반복합니까?
예를 들어, 다음과 같은 4 x 3 배열이 있습니다.
1 99 2
2 14 5
3 12 7
4 43 1
for column in array:
some_function(column)
여기서 열은 첫 번째 반복에서 "1,2,3,4", 두 번째 반복에서 "99,14,12,43", 세 번째 반복에서 "2,5,7,1"입니다.
배열의 전치에 대해 반복하십시오.
for column in array.T:
some_function(column)
이것은 당신에게 시작을 줄 것입니다
>>> for col in range(arr.shape[1]):
some_function(arr[:,col])
[1 2 3 4]
[99 14 12 43]
[2 5 7 1]
for c in np.hsplit(array, array.shape[1]):
some_fun(c)
3 차원 배열의 경우 다음을 시도 할 수 있습니다.
for c in array.transpose(1, 0, 2):
do_stuff(c)
array.transpose
작동 방식 에 대한 문서를 참조하십시오 . 기본적으로 이동할 차원을 지정합니다. 이 경우 두 번째 차원 (예 : 열)을 첫 번째 차원으로 이동합니다.
예를 들어 행렬에서 각 열의 평균을 찾고 싶습니다. 다음 행렬을 만들어 보겠습니다.
mat2 = np.array([1,5,6,7,3,0,3,5,9,10,8,0], dtype=np.float64).reshape(3, 4)
평균 함수는 다음과 같습니다.
def my_mean(x):
return sum(x)/len(x)
필요한 작업을 수행하고 결과를 콜론 벡터 '결과'에 저장하려면
results = np.zeros(4)
for i in range(0, 4):
mat2[:, i] = my_mean(mat2[:, i])
results = mat2[1,:]
결과는 다음과 같습니다. array ([4.33333333, 5., 5.66666667, 4.])
압축 해제를 사용하여 열을 반복 할 수도 있습니다.
for col in zip(*array):
some_function(col)
참고 URL : https://stackoverflow.com/questions/10148818/numpy-how-to-iterate-over-columns-of-array
반응형
'program tip' 카테고리의 다른 글
xaml wpf의 텍스트 상자에 포커스 설정 (0) | 2020.09.07 |
---|---|
현재 클래스 / 메서드 이름을 반환하는 함수가 있습니까? (0) | 2020.09.07 |
distutils를 사용하여 설치된 Python 패키지를 어떻게 제거합니까? (0) | 2020.09.06 |
중괄호로 묶인 이니셜 라이저는 언제 사용합니까? (0) | 2020.09.06 |
클로저는 언제 Fn, FnMut 및 FnOnce를 구현합니까? (0) | 2020.09.06 |