Python中定义函数与保存ndarray类型文件

定义函数

import numpy as np  # 导入NumPy库,用于数学运算

def my_func3(D):
    """
    计算给定数据集的均值和标准差。

    参数:
    D (list 或 ndarray):包含数值数据的列表或数组。

    返回值:
    m (float):数据集的均值。
    s (float):数据集的标准差。
    """
    m = np.mean(D)  # 计算数据集的均值
    s = np.std(D)   # 计算数据集的标准差
    return m, s

下面这段代码首先生成一个包含100个随机数的数据集,然后调用了之前定义的my_func3函数来计算这个数据集的均值和标准差,并最后以格式化的方式输出结果。

import numpy as np  # 导入NumPy库,用于数学运算

# 生成包含100个随机数的数据集
data = np.random.randn(100)

# 调用my_func3函数,计算数据集的均值和标准差
data_mean, data_std = my_func3(data)

# 输出均值和标准差,以格式化的方式显示结果
print('mean:{0:.2f}, std:{1:.2f}'.format(data_mean, data_std))

最后一行代码的含义解释如下:

  • print(...): 这是Python中用于将文本输出到控制台的函数。
  • 'mean:{0:.2f}, std:{1:.2f}'.format(data_mean, data_std): 这是一个格式化字符串,其中包含了两个占位符{0:.2f}{1:.2f}。这些占位符用于将变量的值插入到字符串中。具体解释如下:
    • {0:.2f}: 这个占位符表示将第一个变量(data_mean)插入到字符串中,并使用浮点数格式显示,.2f表示保留两位小数。
    • ,: 逗号用于分隔不同的占位符和变量。
    • std:{1:.2f}: 这个占位符表示将第二个变量(data_std)插入到字符串中,同样使用浮点数格式显示,保留两位小数。
      在这里插入图片描述
# 调用my_func3函数,计算数据集的均值和标准差,并将结果存储在output变量中
output = my_func3(data)

# 输出结果
print(output)  # 输出均值和标准差的值
print(type(output))  # 输出output变量的类型,即输出结果的数据类型

# 以格式化的方式输出均值和标准差
print('mean:{0:.2f}, std:{1:.2f}'.format(output[0], output[1]))

在这里插入图片描述

保存文件

保存一个ndarray类型变量

这段代码涉及到使用NumPy来保存和加载数据到文件中。

import numpy as np  # 导入NumPy库,用于数学运算

# 创建一个NumPy数组
data = np.array([1, 1, 2, 3, 5, 8, 13])
print(data)  # 输出数组内容

# 保存数据到文件
np.save('datafile.npy', data)  # 将数组保存到名为'datafile.npy'的文件中

data = []  # 清空数据,将data变量赋为空列表
print(data)  # 输出空列表,此时data不包含任何内容

# 从文件中加载数据
data = np.load('datafile.npy')  # 从'datafile.npy'文件中加载数据
print(data)  # 输出从文件加载的数据,应该与之前的数组内容相同

在这里插入图片描述

代码的主要步骤如下:

  1. 创建一个名为data的NumPy数组,其中包含一些整数。
  2. 使用np.save函数将这个数组保存到名为’datafile.npy’的文件中,以便将来可以重新加载它。
  3. data变量清空,将其赋值为空列表,因此此时data不再包含之前的数组。
  4. 使用np.load函数从’datafile.npy’文件中重新加载数据,并将其存储在data变量中。
  5. 最后,打印加载的数据,应该与之前创建的数组内容相同。

这种方法允许将数据保存到文件中,以便在以后的时间重新使用,而不必重新生成或计算数据。

保存多个ndarray类型变量

这段代码使用NumPy的np.saveznp.load函数保存和加载多个数组到一个压缩文件中。以下是代码的中文注释和解释:

import numpy as np  # 导入NumPy库,用于数学运算

# 创建两个NumPy数组
data1 = np.array([1, 2, 3])
data2 = np.array([10, 20, 30])

# 保存数据到压缩文件
np.savez('datafile2.npz', data1=data1, data2=data2)

# 清空数据
data1 = []  # 将data1变量赋为空列表
data2 = []  # 将data2变量赋为空列表

# 从压缩文件中加载数据
outfile = np.load('datafile2.npz')

# 输出存储的所有数据的名称
print(outfile.files)  # 输出 ['data1', 'data2']

# 从文件中取出data1和data2
data1 = outfile['data1']  # 从文件中取出名为'data1'的数据
data2 = outfile['data2']  # 从文件中取出名为'data2'的数据

# 打印加载的data1和data2
print(data1)  # 输出 [1 2 3]
print(data2)  # 输出 [10 20 30]

在这里插入图片描述

代码的主要步骤如下:

  1. 创建两个名为data1data2的NumPy数组。
  2. 使用np.savez函数将这两个数组保存到名为’datafile2.npz’的压缩文件中,并为每个数组分配一个名称。
  3. 清空data1data2变量,将它们分别赋值为空列表,因此这两个变量不再包含之前的数组数据。
  4. 使用np.load函数从’datafile2.npz’压缩文件中加载数据,并将其存储在名为outfile的对象中。
  5. 使用outfile.files查看压缩文件中存储的所有数据的名称。
  6. 通过outfile['data1']outfile['data2']分别取出data1data2的数据。
  7. 最后,打印加载的data1data2的内容,它们应该与之前创建的数组内容相同。

这种方法允许保存和加载多个NumPy数组,并为每个数组分配一个名称,以便在以后的时间重新使用它们。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值