numpy에서 1D 배열을 2D 배열로 변환
2D 배열의 열 수를 지정하여 1 차원 배열을 2 차원 배열로 변환하고 싶습니다. 다음과 같이 작동하는 것 :
> import numpy as np
> A = np.array([1,2,3,4,5,6])
> B = vec2matrix(A,ncol=2)
> B
array([[1, 2],
[3, 4],
[5, 6]])
numpy에 내 구성 함수 "vec2matrix"와 같은 기능이 있습니까? (2D 배열처럼 1D 배열을 인덱싱 할 수 있다는 것을 이해합니다. 그러나 이것은 제가 가지고있는 코드의 옵션이 아닙니다.이 변환을해야합니다.)
당신 reshape은 배열을 원합니다 .
B = np.reshape(A, (-1, 2))
두 가지 옵션이 있습니다.
더 이상 원래 모양을 원하지 않는 경우 가장 쉬운 방법은 배열에 새 모양을 할당하는 것입니다.
a.shape = (a.size//ncols, ncols)자동으로 적절한 모양을 계산하기 위해
a.size//ncolsby-1를 전환 할 수 있습니다 . 확인하지a.shape[0]*a.shape[1]=a.size않으면 문제가 발생할 수 있습니다.np.reshape함수 가있는 새 배열을 얻을 수 있습니다.이 배열 은 대부분 위에 제시된 버전과 유사합니다.new = np.reshape(a, (-1, ncols))가능
new하면 초기 배열의보기 일뿐a입니다. 즉, 데이터가 공유됩니다. 그러나 어떤 경우에는new어레이가 대신 복사됩니다. 참고np.reshape또한 선택적 키워드 받아들이order는 열 주요 포트란 순서로 행 주요 C 순서로 전환 할 수 있습니다. 메서드np.reshape의 함수 버전입니다a.reshape.
요구 사항을 준수 할 수 없다면 a.shape[0]*a.shape[1]=a.size새 어레이를 만들어야하는 문제에 봉착합니다. 당신이 사용할 수있는 np.resize기능과 함께 혼합 np.reshape등,
>>> a =np.arange(9)
>>> np.resize(a, 10).reshape(5,2)
다음과 같이 시도하십시오.
B = np.reshape(A,(-1,ncols))
ncols그래도 배열의 요소 수를 나눌 수 있는지 확인해야합니다 . 키워드 를 B사용하여 숫자를 가져 오는 순서로 재생할 수도 있습니다 order.
Numpy를 사용하지 않고 1D 배열을 2D 배열로 변경합니다.
l = [i for i in range(1,21)]
part = 3
new = []
start, end = 0, part
while end <= len(l):
temp = []
for i in range(start, end):
temp.append(l[i])
new.append(temp)
start += part
end += part
print("new values: ", new)
# for uneven cases
temp = []
while start < len(l):
temp.append(l[start])
start += 1
new.append(temp)
print("new values for uneven cases: ", new)
flatten()numpy 패키지에서 사용할 수 있습니다 .
import numpy as np
a = np.array([[1, 2],
[3, 4],
[5, 6]])
a_flat = a.flatten()
print(f"original array: {a} \nflattened array = {a_flat}")
산출:
original array: [[1 2]
[3 4]
[5 6]]
flattened array = [1 2 3 4 5 6]
참고 URL : https://stackoverflow.com/questions/12575421/convert-a-1d-array-to-a-2d-array-in-numpy
'Programing' 카테고리의 다른 글
| Android : CheckBox 크기를 변경하는 방법은 무엇입니까? (0) | 2020.09.13 |
|---|---|
| Picasso (Android)로드 완료 이벤트를 수신하는 방법은 무엇입니까? (0) | 2020.09.13 |
| 힙 크기보다 훨씬 많은 메모리를 사용하는 Java (또는 올바른 Docker 메모리 제한 크기) (0) | 2020.09.12 |
| Angular“10 $ digest () 반복에 도달했습니다”오류 문제를 해결하는 방법 (0) | 2020.09.12 |
| Swift를 사용한 하위 클래스 UIApplication (0) | 2020.09.12 |