社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python库架构有两个不同的数学后端,如何?

Pierre • 2 年前 • 845 次点击  

我想在python中建立一个用于科学计算的库。精确用于自然坐标力学。在进入代码之前,我想先想一想。这篇帖子征求任何建议,无论是坏主意还是好主意。我不是python的专业人士,我确信。周围可能有专家。

首先,我希望我的库可以与numpy(数字计算)和casadi(符号计算)一起使用。为了尽可能简单,我希望库是可加载的:

import my_package_numpy # option 1
import my_package_casadi # option 2

其次,我希望每个类或每个函数和方法都能同时使用这两种类型的对象ndarrays(numpy)和MX(casadi)。

my_var_np = np.array([2,2]) # numeric 
my var_mx = MX.sym("var",[2,1]) # symbolic

from my_package_numpy import HelloWorld # option 1
hw = HelloWorld(my_var_np)

from my_package_casadi import HelloWorld # option 2
hw = HelloWorld(my_var_mx)

第三,我希望能够切换到知道用户何时在特定方法中使用一个或另一个后端。因为数学运算的定义可能不同。(有全局变量可以知道吗?)

class HelloWorld:
     def __init__(value):
          self.value = value
          if numpy:
             self.transpose_value = value.transpose()
          elif casadi:
             self.transpose_value = transpose(value)

我知道if写得不好,我不知道从哪里得到这个值。 这个图书馆可以快速发展。我想尽量避免复制代码和只写一次的东西。

如有任何帮助、建议或意见,我们将不胜感激。

我正试图构建一个包含两个数学后端的包。我希望它对用户来说尽可能简单。但我不知道如何构建后端

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/158852
 
845 次点击  
文章 [ 1 ]  |  最新文章 2 年前