반응형
numpy
가 데이터를 저장하는 방법을 이해하는 데 문제가 있습니다. 다음을 고려하세요:
>>> import numpy as np
>>> a = np.ndarray(shape=(2,3), order='F')
>>> for i in xrange(6): a.itemset(i, i+1)
...
>>> a
array([[ 1., 2., 3.],
[ 4., 5., 6.]])
>>> a.flags
C_CONTIGUOUS : False
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False
이는 a
가 주 열 ( F_CONTIGUOUS
)이므로 내부적으로 a
는 다음과 같아야합니다.
[1, 4, 2, 5, 3, 6]
>>> for i in xrange(6): print a.item(i)
...
1.0
2.0
3.0
4.0
5.0
6.0
질문은 다음과 같습니다. 숫자 목록 (예 : 1, 2, 3, 4, 5, 6
)이있는 경우 numpy
모양의 배열 (2, 3)
열 주요 순서? 이것이 내가 다음과 같은 행렬을 얻는 방법입니다.
array([[ 1., 3., 5.],
[ 2., 4., 6.]])
목록을 선형 적으로 반복하여 새로 생성 된 ndarray
에 배치하고 싶습니다. 그 이유는 열 주요 순서로 설정된 다차원 배열의 파일을 읽을 것이기 때문입니다.
해결 방법
numpy는 행 주요 순서로 데이터를 저장합니다.
>>> a = np.array([[1,2,3,4], [5,6,7,8]])
>>> a.shape
(2, 4)
>>> a.shape = 4,2
>>> a
array([[1, 2],
[3, 4],
[5, 6],
[7, 8]])
모양을 변경해도 데이터 순서는 변경되지 않습니다.
'F'를 추가하면 원하는 것을 얻을 수 있습니다.
>>> b
array([1, 2, 3, 4, 5, 6])
>>> c = b.reshape(2,3,order='F')
>>> c
array([[1, 3, 5],
[2, 4, 6]])
참조 페이지 https://stackoverflow.com/questions/20341614
반응형
'파이썬' 카테고리의 다른 글
파이썬 matplotlib 컬러 바에서 모든 n 번째 눈금 레이블을 숨기는 가장 깨끗한 방법은 무엇입니까? (0) | 2020.12.30 |
---|---|
파이썬 Pandas : dict에서 DataFrame에 명명 된 열 만들기 (0) | 2020.12.29 |
파이썬 Python 방식으로 csv 파일에 헤더 추가 (0) | 2020.12.29 |
파이썬 초보자 Python (프로그래밍 초보자는 아님) 개발자를 위해 좋은 프로젝트는 무엇입니까? (0) | 2020.12.29 |
파이썬 Django 양식에서 오류 목록 가져 오기 (0) | 2020.12.29 |
댓글