이번에는 Numpy 배열 을 저장하고 읽는 방법과 Numpy 배열을 저장하고 읽는 주의 사항 에 대해 설명하겠습니다.
1. 배열은 바이너리 형식으로 저장됩니다.
np.save와 np.load는 디스크 배열 데이터를 읽고 쓰는 두 가지 주요 함수입니다. 기본적으로 배열은 확장자가 npy인 파일에 압축되지 않은 원시 바이너리 형식으로 저장됩니다. 배열 a를 예로 들면
np.save("filename.npy",a) b = np.load("filename.npy")
이 방법을 사용하면 저장된 파일의 접미사 이름이 확실히 .npy
로 설정됩니다. . 텍스트 파일에 액세스
np.savetxt 및 np.loadtxt를 사용하면 1차원 및 2차원 배열만 읽고 쓸 수 있습니다.np.savetxt: 특정 구분 기호로 구분된 텍스트로 배열을 씁니다.
파일의 np.loadtxt: 텍스트 파일을 배열로 읽으려면 특정 구분 기호를 지정하세요.
np.savetxt("filename.txt",a) b = numpy.loadtxt("filename.txt", delimiter=',')
3. 바이너리 파일로 저장하세요.
배열의 tofile 기능을 사용하여 배열을 편리하게 변환하세요. 데이터는 바이너리 형식으로 파일에 기록됩니다.a.tofile("filename.bin") b = np.fromfile("filename.bin",dtype = **)
이 방법은 np.save와 몇 가지 차이점이 있습니다.
tofile 함수는 배열을 바이너리 파일로만 저장할 수 있으며 파일 접미사 이름에는 고정된 요구 사항이 없습니다. . 이 저장 방법에는 데이터 읽기에 대한 요구 사항이 있습니다. np.fromfile은 읽은 데이터의 dtype을 수동으로 지정해야 합니다. 지정된 형식이 저장할 때의 형식과 일치하지 않으면 잘못된 데이터를 읽게 됩니다. tofile 함수는 현재 데이터의 행 및 열 정보를 저장할 수 없습니다. 배열 순서가C 언어 형식이든 Fortran 언어 형식이든 관계없이 C 언어 형식이 출력에 사용됩니다. 따라서 np.fromfile을 사용하여 읽어낸 데이터는 1차원 배열이므로 행과 열 정보를 지정하려면 reshape를 사용해야 합니다.
예를 들어 다음 예와 같습니다.
>>> a = np.arange(0,12) >>> a.shape = 3,4 >>> a array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) >>> a.tofile("a.bin") >>> b = np.fromfile("a.bin", dtype=np.float) # 按照float类型读入数据 >>> b # 读入的数据是错误的 array([ 2.12199579e-314, 6.36598737e-314, 1.06099790e-313, 1.48539705e-313, 1.90979621e-313, 2.33419537e-313]) >>> a.dtype # 查看a的dtype dtype('int32') >>> b = np.fromfile("a.bin", dtype=np.int32) # 按照int32类型读入数据 >>> b # 数据是一维的 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) >>> b.shape = 3, 4 # 按照a的shape修改b的shape >>> b array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])
위 내용은 Numpy 배열을 저장하고 읽는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!