반응형
동일한 수의 인수를 가진 두 개의 배열을 병합하려고합니다.
입력:
first = [[650001.88, 300442.2, 18.73, 0.575, 650002.094, 300441.668, 18.775],
[650001.96, 300443.4, 18.7, 0.65, 650002.571, 300443.182, 18.745],
[650002.95, 300442.54, 18.82, 0.473, 650003.056, 300442.085, 18.745]]
second = [[1],
[2],
[3]]
내 예상 출력 :
final = [[650001.88, 300442.2, 18.73, 0.575, 650002.094, 300441.668, 18.775, 1],
[650001.96, 300443.4, 18.7, 0.65, 650002.571, 300443.182, 18.745, 2],
[650002.95, 300442.54, 18.82, 0.473, 650003.056, 300442.085, 18.745, 3]]
이를 위해 간단한 루프를 만듭니다.
for i in first:
for j in second:
final += np.append(j, i)
나는 내가 뭔가를 놓친 것을 채우고있다. 우선 내 루프는 매우 느립니다. 두 번째로 내 데이터는 루프 할 행이 2 백만 개가 넘습니다. 그래서 예를 들어 다음 코드로 더 빠른 방법을 찾으려고 노력했습니다.
final = [np.append(i, second[0]) for i in first]
이전 루프보다 훨씬 빠르게 작동하지만 두 번째 배열의 첫 번째 값만 추가합니다. 도와주세요?
해결 방법
np.array
를 사용한 다음 np.concatenate
를 사용합니다.
import numpy as np
first = np.array([[650001.88, 300442.2, 18.73, 0.575,
650002.094, 300441.668, 18.775],
[650001.96, 300443.4, 18.7, 0.65,
650002.571, 300443.182, 18.745],
[650002.95, 300442.54, 18.82, 0.473,
650003.056, 300442.085, 18.745]])
second = np.array([[1],
[2],
[3]])
np.concatenate((first, second), axis=1)
여기서 axis = 1
은 가로로 연결 함을 의미합니다.
그것은 나를 위해 작동합니다
참조 페이지 https://stackoverflow.com/questions/43561622
반응형
'파이썬' 카테고리의 다른 글
파이썬 Django의 objects.get을 처리하는 가장 좋은 방법은 무엇입니까? (0) | 2020.10.22 |
---|---|
파이썬 pip install pickle이 작동하지 않음-해당 파일 또는 디렉토리가 없습니다. (0) | 2020.10.22 |
파이썬 Visual Studio 2017에서 Python에 패키지를 추가하는 방법 (0) | 2020.10.21 |
파이썬에서 파일의 MIME 유형을 찾는 방법은 무엇입니까? (0) | 2020.10.21 |
파이썬 easy_install로 설치 한 Python 모듈 ( "egg")을 어떻게 제거합니까? (0) | 2020.10.21 |
댓글