如何将数组各列平均值保存至CSV文件?
解决方法
首先得修正你原代码里的一个错误:a.shape(3,1000)是无效写法,shape是数组的属性而非方法,你需要用reshape把展平后的一维数组转换成(3,1000)的二维数组,这样才能按列计算平均值。
以下是完整的实现步骤和代码:
1. 修正数组形状
展平后的数组是一维结构,用reshape方法把它转成(3,1000)的二维数组,和之前flatten用的order='C'保持一致,确保数据顺序正确:
a = a.flatten(order='C').reshape(3, 1000, order='C')
2. 计算各列平均值
用numpy的mean方法,指定axis=0就会沿着行的方向计算每一列的平均值,最终得到一个长度为1000的一维数组,每个元素对应原数组一列的平均值:
column_means = a.mean(axis=0)
3. 保存结果到CSV文件
有两种常用实现方式:
方式一:用numpy直接保存
适合简单场景,可直接指定分隔符和表头:
np.savetxt('column_means.csv', column_means, delimiter=',', header='Column Mean', comments='')
delimiter=',':设置CSV的分隔符为逗号header='Column Mean':添加表头comments='':避免表头被自动加上#注释
方式二:用pandas保存(更灵活)
如果需要后续对数据做扩展处理,pandas的方式更便捷,需要先安装pandas:
import pandas as pd # 把平均值数组转成DataFrame结构 df = pd.DataFrame(column_means, columns=['Column Mean']) # 保存为CSV,不保留自动生成的索引 df.to_csv('column_means.csv', index=False)
完整代码示例
import h5py import numpy as np # 读取H5文件中的数据 a = np.array(h5py.File('/Users/D/FIELD-3D.h5', 'r')['Zone']['TOp']['data']) # 展平并重塑数组形状 a = a.flatten(order='C').reshape(3, 1000, order='C') # 计算各列平均值 column_means = a.mean(axis=0) # 保存到CSV文件 np.savetxt('column_means.csv', column_means, delimiter=',', header='Column Mean', comments='')
内容的提问来源于stack exchange,提问作者helloitsmontie
相关产品推荐
相关产品推荐

