首页/文章/ 详情

ANSA二次开发_Python基础-pandas模块-批量创建材料

3月前浏览1081
Pandas 是一个开源的 Python 数据分析库,提供了高性能、易用的数据结构和数据分析工具。Pandas 使得在 Python 中进行数据清洗、分析、和可视化变得更加快捷和简单。它是基于 NumPy 构建的,使得数据操作和分析工作对于有着不同背景的人们都易于上手。但是在ANSA开发中使用较少。拿来解析xlsx还是挺方便的,但还是建议使用ANSA提供的API解析。
案例:批量创建材料


















import ansafrom ansa import basefrom ansa import constants
import pandas as pd
df = pd.read_excel('C:\\Users\\jintian\\Documents\\mat.xlsx')
for index, row in df.iterrows():  if not row.isnull().all():        row_dict = {                    'Name': row['Name'],                    'E': row['E'],                    'NU': row['NU'],                    'RHO': row['RHO'],                    'DEFINED':'YES'                    }        base.CreateEntity(constants.NASTRAN, 'MAT1', row_dict)


Pandas 主要有两种类型的数据结构:

  • Series:一维数组,与 NumPy 的数组类似,但它可以有一个索引。索引可以是数字,也可以是标签。

  • DataFrame:二维的表格型数据结构,可以看作是由多个 Series 组成的字典(共用同一个索引)。


Pandas 强大的功能包括但不限于:

  • 快速高效地处理大量数据

  • 读取和写入各种格式的数据,包括 CSV、Excel、SQL 数据库和 HDF5 格式

  • 数据清洗功能,如处理缺失数据、数据过滤、数据转换等

  • 数据合并、分组、重塑

  • 时间序列分析


Pandas 经典使用案例


1. 数据读取和预览:






import pandas as pd# 读取 CSV 文件df = pd.read_csv('data.csv')# 预览前五行数据print(df.head(5))


2. 数据清洗

数据清洗是数据分析中的重要步骤。Pandas 提供了多种数据清洗的工具,例如处理缺失值:




# 填充缺失值df.fillna(0, inplace=True)# 删除含有缺失值的行df.dropna(inplace=True)


3. 数据筛选

Pandas 允许使用条件逻辑来筛选数据:




# 筛选 'age' 列大于 30 的所有行filtered_df = df[df['age'] > 30]# 筛选 'age' 大于 30 并且 'gender' 为 'male' 的行filtered_df = df[(df['age'] > 30) & (df['gender'] == 'male')]


4. 数据分组和聚合

Pandas 的 groupby 功能非常强大,可以用来对数据集进行分组和聚合操作:



# 按 'gender' 分组并计算每组的平均 'age'grouped_df = df.groupby('gender')['age'].mean()print(grouped_df)


5. 数据合并

Pandas 提供了多种数据合并的方法,如 concat、merge 和 join:


# 假设有两个 DataFrame,df1 和 df2merged_df = pd.merge(df1, df2, on='key_column')


Pandas 是 Python 数据分析的核心库之一,提供了强大的数据处理能力,前处理中常规开发使用较少,后处理numpy与pandas搭配使用使得数据分析工作变得更加高效。

来源:TodayCAEer
Nastran二次开发ANSApythonUM材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-08-14
最近编辑:3月前
TodayCAEer
本科 签名征集中
获赞 18粉丝 29文章 252课程 0
点赞
收藏
作者推荐

HyperStudy和Optimus中使用样本数据快速创建代理模型(3/3)

背景已有一组或一系列样本数据,如下图所示,目的是基于该组数据直接创建代理模型,以便于后续快速预测结果以及寻优。*上图数据中,第一列是ID,P1~P5为自变量(如模型中的料厚、尺寸等),Mass、NodeDisplacement、ElemStrain为因变量(也称响应,如模型的重量、计算结果的节点位移、单元应变等指标数据)工具本次将分别使用AltairHyperStudy和NoesisOptimus两款软件来基于数据快速创建代理模型。##################################################在前两篇文章中(HyperStudy和Optimus中使用样本数据快速创建代理模型(1/3)、HyperStudy和Optimus中使用样本数据快速创建代理模型(2/3)),分别介绍了数据准备以及如何在HyperStudy导入数据模型并创建代理模型,以及相关的模型数据查看等功能,本文将介绍如何在Optimus软件中训练代理模型、模型验证等功能。##################################################引言在第一篇文章(HyperStudy和Optimus中使用样本数据快速创建代理模型(1/3))的数据准备章节,介绍了对于Optimus软件处理,需要的数据格式,此处再回顾一下:1)在文本编辑工具中,将csv文件中的逗号替换成空格;2)在文件开头插入两行:·第一行填入自变量的数量,本例中有5个自变量,固第一行填入数字“5”;·第二行填入因变量的数量,本例中有3个因变量,固第二行填入数字“3”。最终处理好的数据应该如下图所示:模型训练-Optimus1、新建项目:打开Optimus软件界面,点击左上角“新建项目”按钮,配置项目路径:2、导入数据:选择“方法”→“导入表格”,选择准备好的数据文件(*.csv):3、此时项目树的“方法”节点下,会新增一个节点,该节点以数据文件的文件名命名,鼠标右键此节点:“后处理”→“结果列表”,可以查看数据表格,表格中,软件已经按照我们准备的数据文件中约定的自变量数量和因变量数量进行了处理,如下表所示,“计算点序号”和自变量P1~P5之间有粗线隔开,自变量P1~P5和因变量Mass...之间有粗线隔开:4、截止此步,Optimus软件中已经可以基于导入的数据进行相应的后处理,如下图所示的相关性表格(“后处理”→“相关性”)、散点相关图(“后处理”→“散点相关图”)、散点图、3维散点图、自组织映射图、气泡图、平行坐标图等:5、言归正传,开始创建代理模型,鼠标右键导入的数据节点,选择“新建模型”:弹出如下图所示对话框,在对话框中选择算法分类(1),选择具体的算法(2):在Optimus中,有如下四种分类的算法:其中:1)近似模型中有如下算法:2)插值模型中有如下算法:3)机器学习模型中有如下算法:4)集合模型中有如下算法:用户可根据实际需求选择适合的算法,本案例中,采用插值模型中的克里金模型,常用情况下其余参数保持默认值即可,配置完成后,点击对话框右下角的“执行”按钮,便可开始代理模型的创建:6、完成代理模型的创建后,模型树中会在导入的数据节点下新生成一个模型节点,如下图所示:7、鼠标右键该节点,可对模型进行后处理,如下图所示:如下图所示为模型三维图:X(P2)、Y(P5)、Z(NodeDisplacement)8、有了代理模型以后,可以右键数据节点,点击“生成工作流”:软件将创建一个只有输入参数列表和输出参数列表的工作流:同时,左侧模型树中也会新产生一个如下图所示的工作流节点:其中,输入参数列表中自动创建了5个输入参数的信息,此时可根据需求进行修改:输出参数列表中,自动创建了三个输出参数:9、数据验证:右键新生成的工作流节点,“新建方法”→“表格”:弹出如下对话框,我们需要验证10组数据,则在“计算次数”框中输入10,回车,下方表格自动生成10行,从表格工具中可直接将10组P1~P5的自变量数据复制粘贴到对话框的表格中:切换到“输出参数”界面(1),将输出参数的“求解”列,全部选择为之前所创建的“模型1”,代表此次表格计算,将使用对应的代理模型计算结果,最后点击对话框右下角的“执行”按钮:此时,左侧树节点里面会生成一个对应的“表格计算1”的节点,计算完成后字体会变成绿色(计算过程中为斜体):右键该节点,点击“载入结果”,节点文字颜色变黑,如下图所示,右键该节点,“后处理”→“结果列表”,可以查看测试结果数据,下图红色方框内的结果数据就是基于代理模型计算得到的结果数据:同理,也可以进行相关的后处理数据查看,此处不再赘述。至此,便完成了Optimus软件中的代理模型创建、数据验证、数据后处理等介绍。###############################################相同的伏笔:代理模型训练完成以后,如何保存并在以后的工作中直接使用,以用于快速预测结果数据。(将在后续其他系列文章中介绍,敬请关注,也欢迎大家私信交流,感谢。)###############################################“本系列是基于已有的样本数据直接在软件中创建代理模型,在后续的文章中,将陆续介绍如何在这两款软件中通过流程自动化去获取样本数据,其过程包括模型参数化、求解器调用、结果数据提取、DOE采样、代理模型创建、寻优等。敬请期待”=============点关注,不迷路=============最后,大家有什么想了解的,也可以私信留言,感谢各位的支持。来源:TodayCAEer

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈