如何使用savetxt()和loadtxt()函数加载和保存3D Numpy数组到文件

如何使用savetxt()和loadtxt()函数加载和保存3D Numpy数组到文件

Numpy.savetxt()是numpy库中python的一个方法,用于将一维和二维数组保存到一个文件中。

语法: numpy.savetxt(fname, X, fmt=’%.18e’, delimiter=’ ‘, newline=’\n’, header=”, footer=”, comments=’# ‘, encoding=None)

numpy.loadtxt()是numpy库中python的一个方法,用于从文本文件中加载数据,以加快阅读速度。

语法:

numpy.loadtxt(fname, dtype=’float’, comments=’#’, delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0) 

保存和加载三维矩阵

正如前面所讨论的,我们只能在numpy.savetxt()中使用一维或二维数组,如果我们使用更多维度的数组,就会抛出ValueError – 预期是一维或二维数组,结果是三维数组。因此,我们需要找到一种保存和检索的方法,至少对三维数组来说是这样的,这里你可以通过使用一些Python技巧来实现。

  • 第1步:将3D阵列重塑为2D矩阵。
  • 第2步:将这个数组插入到文件中
  • 第3步:从文件中加载数据来显示
  • 第4步:转换回原始的异形矩阵

示例:

import numpy as gfg
  
  
arr = gfg.random.rand(5, 4, 3)
  
# reshaping the array from 3D
# matrice to 2D matrice.
arr_reshaped = arr.reshape(arr.shape[0], -1)
  
# saving reshaped array to file.
gfg.savetxt("geekfile.txt", arr_reshaped)
  
# retrieving data from file.
loaded_arr = gfg.loadtxt("geekfile.txt")
  
# This loadedArr is a 2D array, therefore
# we need to convert it to the original
# array shape.reshaping to get original
# matrice with original shape.
load_original_arr = loaded_arr.reshape(
    loaded_arr.shape[0], loaded_arr.shape[1] // arr.shape[2], arr.shape[2])
  
# check the shapes:
print("shape of arr: ", arr.shape)
print("shape of load_original_arr: ", load_original_arr.shape)
  
# check if both arrays are same or not:
if (load_original_arr == arr).all():
    print("Yes, both the arrays are same")
else:
    print("No, both the arrays are not same")

输出:

shape of arr:  (5, 4, 3)
shape of load_original_arr:  (5, 4, 3)
Yes, both the arrays are same

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程