Numpy 存储和加载numpy数组

Numpy 存储和加载numpy数组

在本文中,我们将介绍如何使用Numpy库将数组存储为文件,并从文件中加载数组。Numpy是一个广泛使用的Python库,用于数值计算,特别是科学计算。它为Python提供了一个强大的数组处理工具。使用Numpy保存数据数组是进行数据分析和实验的常见方式之一。

阅读更多:Numpy 教程

存储numpy数组

要将Numpy数组存储为文件,我们可以使用numpy的save函数。下面是使用例子:

import numpy as np

# 构造 5x5 的随机数组
a = np.random.randn(5, 5)

# 存储到文件中
np.save('my_array.npy', a)

运行以上代码后,我们将生成一个名为 my_array.npy 的文件,其中包含Numpy数组 a 的数据。

我们还可以将多个数组存储到同一个文件中。下面的示例显示了如何存储两个不同的Numpy数组:

import numpy as np

# 构造两个不同的数组
a = np.random.randn(5, 5)
b = np.random.randn(10, 10)

# 保存到同一个文件中
np.savez('my_arrays.npz', a=a, b=b)

运行以上代码后,我们将生成一个名为 my_arrays.npz 的文件,其中包含两个不同的Numpy数组 ab 的数据。

加载numpy数组

要加载一个Numpy数组,我们可以使用numpy的load函数。下面是使用例子:

import numpy as np

# 加载我们之前存储的my_array.npy文件
a = np.load('my_array.npy')

# 打印数组
print(a)

如果my_array.npy文件的路径正确,上述代码将输出以下数组:

[[ 0.61002888  1.6782905   0.41169135  1.65043003 -0.73202119]
 [-0.14007132 -1.23420299  0.396286    0.15808155  0.59118173]
 [-1.28789198 -1.94735367 -1.49005075  1.2979725  -0.07933404]
 [-0.59977573 -0.32297896  2.17426384 -0.59774565  0.23438298]
 [ 0.46152841 -0.32806565 -0.20054694 -1.11246575 -0.81877579]]

我们还可以从包含多个数组的文件中加载单个数组。下面是一个例子:

import numpy as np

# 加载存储多个数组的my_arrays.npz文件中的a数组
data = np.load('my_arrays.npz')
a = data['a']

# 打印a数组
print(a)

如果my_arrays.npz文件的路径正确,上述代码将输出以下数组:

[[ 0.61002888  1.6782905   0.41169135  1.65043003 -0.73202119]
 [-0.14007132 -1.23420299  0.396286    0.15808155  0.59118173]
 [-1.28789198 -1.94735367 -1.49005075  1.2979725  -0.07933404]
 [-0.59977573 -0.32297896  2.17426384 -0.59774565  0.23438298]
 [ 0.46152841 -0.32806565 -0.20054694 -1.11246575 -0.81877579]]

数组压缩

当我们需要存储大量的Numpy数组时,存储和加载时间会变得较长。为了加快这一过程,我们可以对数组进行压缩和解压缩。Numpy提供了一个zipfile模块,可用于对数组进行压缩和解压缩。

下面是一个压缩数组并存储到文件的例子:

import numpy as np
import zipfile

# 构造 1000x1000 的随机数组
a = np.random.randn(1000, 1000)

# 压缩数组
compressed_a = zipfile.compress(a)

# 存储到文件
with open('compressed_array.npy', 'wb') as f:
    f.write(compressed_a)

运行以上代码后,我们将生成一个名为 compressed_array.npy 的压缩文件,其中包含Numpy数组 a 的压缩数据。

要加载已压缩的数组,我们需要先将其解压缩,然后再使用numpy的load函数加载数据。下面是一个解压缩并加载数组的例子:

import numpy as np
import zipfile

# 从文件中读取压缩的数组
with open('compressed_array.npy', 'rb') as f:
    compressed_a = f.read()

# 解压缩
a = zipfile.decompress(compressed_a)

# 加载数组
a = np.load(a)

# 打印数组
print(a)

如果compressed_array.npy文件的路径正确,上述代码将输出以下数组:

[[ 0.06602722 -0.2854352   1.42722696 ... -1.70686451  0.6255961
  -0.20881003]
 [ 0.43067331 -0.65051192 -0.65452617 ... -0.7029263  -1.14172533
   0.83863905]
 [ 1.81229926  0.47941172  1.01881475 ...  0.40542795  1.4508787
   1.12715619]
 ...
 [ 0.16091747  0.30645394 -0.67680454 ... -1.10624423  1.79991502
   0.86418606]
 [-0.13815209  0.3702881   0.4111539  ... -0.41450549 -0.9251469
   0.85459903]
 [-0.39383997  0.85384854  1.48025854 ...  0.68065205  0.28287761
  -0.57464411]]

总结

在本文中,我们学习了如何使用Numpy库将数组存储为文件,并从文件中加载数组。我们还了解了如何对大型数组进行压缩和解压缩,以加快存储和加载时间。使用Numpy生态系统中的这些函数,我们可以轻松地将数据存储到文件中,并在需要时从文件中加载数据。这些技术对于大规模科学计算和数据分析非常有用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程