作为生物学本科生,我经常编写Python软件进行数据分析。一般的结构是:
首先需要加载一些数据,对其进行分析(如统计、聚类等),然后可视化结果。
有时,同一个实验的数据可能以不同的格式出现,可以使用不同的分析方法,并且有多种可视化方式,这些可能与所执行的分析有关或者不相关。
我很难找到一种通用的“Pythonic”面向对象方式来使它清晰易懂并具有可扩展性。应该很容易添加新的操作类型或对现有操作进行轻微变化,因此我相信应该采用面向对象编程。
我已经创建了一个数据(Data)对象,其中包含加载试验数据的方法。如果有多个数据来源,我打算创建继承类来覆盖加载函数。
之后……我不确定接下来该怎么做。我应该创建一个Analysis抽象类,每种分析类型都有一个子类(并使用它们的属性来存储结果),并针对Visualization做同样的事情,使用一个通用的Experiment对象来保存数据实例以及多个Analysis和Visualization实例吗?还是可视化应该是一个函数,它将Analysis和/或Data对象作为参数来构造图表?还有更有效的方法吗?我有什么遗漏的吗?
首先需要加载一些数据,对其进行分析(如统计、聚类等),然后可视化结果。
有时,同一个实验的数据可能以不同的格式出现,可以使用不同的分析方法,并且有多种可视化方式,这些可能与所执行的分析有关或者不相关。
我很难找到一种通用的“Pythonic”面向对象方式来使它清晰易懂并具有可扩展性。应该很容易添加新的操作类型或对现有操作进行轻微变化,因此我相信应该采用面向对象编程。
我已经创建了一个数据(Data)对象,其中包含加载试验数据的方法。如果有多个数据来源,我打算创建继承类来覆盖加载函数。
之后……我不确定接下来该怎么做。我应该创建一个Analysis抽象类,每种分析类型都有一个子类(并使用它们的属性来存储结果),并针对Visualization做同样的事情,使用一个通用的Experiment对象来保存数据实例以及多个Analysis和Visualization实例吗?还是可视化应该是一个函数,它将Analysis和/或Data对象作为参数来构造图表?还有更有效的方法吗?我有什么遗漏的吗?