定义函数
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) # 输出从文件加载的数据,应该与之前的数组内容相同
代码的主要步骤如下:
- 创建一个名为
data
的NumPy数组,其中包含一些整数。 - 使用
np.save
函数将这个数组保存到名为’datafile.npy’的文件中,以便将来可以重新加载它。 - 将
data
变量清空,将其赋值为空列表,因此此时data
不再包含之前的数组。 - 使用
np.load
函数从’datafile.npy’文件中重新加载数据,并将其存储在data
变量中。 - 最后,打印加载的数据,应该与之前创建的数组内容相同。
这种方法允许将数据保存到文件中,以便在以后的时间重新使用,而不必重新生成或计算数据。
保存多个ndarray类型变量
这段代码使用NumPy的np.savez
和np.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]
代码的主要步骤如下:
- 创建两个名为
data1
和data2
的NumPy数组。 - 使用
np.savez
函数将这两个数组保存到名为’datafile2.npz’的压缩文件中,并为每个数组分配一个名称。 - 清空
data1
和data2
变量,将它们分别赋值为空列表,因此这两个变量不再包含之前的数组数据。 - 使用
np.load
函数从’datafile2.npz’压缩文件中加载数据,并将其存储在名为outfile
的对象中。 - 使用
outfile.files
查看压缩文件中存储的所有数据的名称。 - 通过
outfile['data1']
和outfile['data2']
分别取出data1
和data2
的数据。 - 最后,打印加载的
data1
和data2
的内容,它们应该与之前创建的数组内容相同。
这种方法允许保存和加载多个NumPy数组,并为每个数组分配一个名称,以便在以后的时间重新使用它们。