numpy의 numpy.memmap 함수의 사용법
numpy.memmap(filename,datatype[optional],mode[optional],offset[optional] ,shape[optional],order[optional])
기능:numpy 모듈 기능, 디스크 바이너리 파일에 저장된 그룹의 메모리 맵을 만듭니다.
매개변수:
filename(파일 이름):str, 유사한 파일의 대상 또는 pathlib.path 실례, 그룹 데이터 버퍼의 파일 이름이나 파일 대상으로 사용됩니다.
데이터 type (데이터 형식): 데이터 형식, 파일 내용을 설명하는 데이터 형식을 선택할 수 있습니다.기본값은 uint8입니다.
mode(모드):'r+','r','r+','c', 선택 가능(기본값 r+)
offset (바이트 오프셋): 이 파일에서 그룹 데이터는 이 오프셋에서 시작합니다.편이량은 바이트 단위로 측정되기 때문에, 보통 dtype 바이트 크기의 배수이어야 한다.모드로!='r'일 때 파일 끝을 초과하는 양의 편이도 유효하다.이 파일은 추가 데이터를 수용하기 위해 확장될 것입니다.기본적으로memmap은 파일의 시작부터 시작합니다. filename이 파일 바늘 fp와 fp라도.tell()!= 0.
shape (모양):tuple, 필요한 진열 모양.모델=='r'및offset 이후의 나머지 바이트 수가 dtype의 바이트 크기의 배수가 아니라면 shape를 지정해야 합니다.기본적으로 반환되는 배열은 1-D이며 요소 수는 파일 크기와 데이터 유형에 따라 결정됩니다.
order(순서): {'C','F'},
파일 모드:
r: 읽기 전용으로 기존 파일을 엽니다.
"r+": 읽기 및 쓰기 위해 기존 파일을 엽니다.
"w+": 기존 파일을 만들거나 덮어씁니다.
"c"쓰기 시 복사: 분배는 메모리의 데이터에 영향을 주지만 변경 사항은 디스크에 저장되지 않습니다.디스크의 파일은 읽기만 합니다.
예:
from tempfile import mkdtemp
import os.path as path
import numpy as np
data=np.arange(12,dtype='float32')
data.resize(3,4)
filename = path.join(mkdtemp(),'newfile.dat')
fp = np.memmap(filename,dtype='float32',mode='w+',shape=(3,4))
# fp, 0.
fp# fp
Out[2]:
memmap([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]], dtype=float32)
fp[:] = data[:]
fp# fp
Out[4]:
memmap([[ 0., 1., 2., 3.],
[ 4., 5., 6., 7.],
[ 8., 9., 10., 11.]], dtype=float32)
fp.filename == path.abspath(filename)
Out[5]: True
del fp# fp
newfp = np.memmap(filename, dtype='float32', mode='r', shape=(3,4))
newfp
Out[8]:
memmap([[ 0., 1., 2., 3.],
[ 4., 5., 6., 7.],
[ 8., 9., 10., 11.]], dtype=float32)
fpr = np.memmap(filename, dtype='float32', mode='r', shape=(3,4))
fpr.flags.writeable
Out[10]: False# fpr
fpc = np.memmap(filename, dtype='float32', mode='c', shape=(3,4))
fpc.flags.writeable
Out[12]: True
fpc
Out[13]:
memmap([[ 0., 1., 2., 3.],
[ 4., 5., 6., 7.],
[ 8., 9., 10., 11.]], dtype=float32)
fpc[2,:] = 1
fpc
Out[15]:
memmap([[0., 1., 2., 3.],
[4., 5., 6., 7.],
[1., 1., 1., 1.]], dtype=float32)
fpr#
Out[16]:
memmap([[ 0., 1., 2., 3.],
[ 4., 5., 6., 7.],
[ 8., 9., 10., 11.]], dtype=float32)
fpo = np.memmap(filename, dtype='float32', mode='r', offset=16)
fpo# offset
Out[18]: memmap([ 4., 5., 6., 7., 8., 9., 10., 11.], dtype=float32)
참조 번역:
numpy.memmap:https://docs.scipy.org/doc/numpy/reference/generated/numpy.memmap.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.