Questions tagged «python»

一种通用的高级编程语言,着重于简化代码语法和可读性。

4
制作分子编辑器/可视化器:面向对象的程序,数据结构和分子
我是编程新手,正在尝试解决我的第一个大问题并编写我的第一个大程序。我一直在寻找可以学习的开放源代码示例,但是到目前为止,我只发现了我无法完全理解的语言代码,或者确实找到了相关但仍然相距甚远的语言来学习。我在这里采取一些概念上的步骤时遇到了麻烦。 我想制作一个简单的软件来构建,修改并稍后代表有机小分子。这主要是一种学习练习。用户可以给出一个SMILES字符串或从一组基本的起始分子中进行选择,然后可以以图形方式或通过文本输入语法在该分子上进行构建。但是,我还没有达到那种复杂程度。我什至无法完全理解如何创建类/对象来存储分子。因此,我的问题简明扼要:如何在保留所有信息级别的同时使用类/对象构建分子,以及应使用哪些数据结构作为哪些对象的属性?而且,对象可以作为其他对象的属性吗? 到目前为止,这是我的思路:我正在考虑创建一个“分子”类,然后是一个“原子”类/子类和一个“邦德”子类,也许还有一个“ FunctionalGroup”子类。这似乎是一个不错的起点,但也许我误会了OOP,这很不好。但是后来我的问题真的变得令人困惑(对我来说)。即使我拥有所有这些概念/想法/类,我仍未完全掌握表示分子所需的数据结构。原子列表将是一件好事。该列表可以是Atom对象的列表吗?我还需要一种存储连接性的方法。2D矩阵似乎是个好主意,在矩阵位置,键序为整数。 在这一点上,我开始不知所措。我到目前为止所做的一切都有意义吗?在此之上附加显示/绘图方面可能意味着我需要重写/重做许多这些事情,但是我只是想达到一个这样的程度,即我至少可以将分子与相关数据一起存储,然后访问该数据进行检查/修改。我正在考虑在Python中执行此操作,因此代码/类可能看起来像这样:http : //pastebin.com/uUi1BMzr 也许这确实是StackOverflow的编程问题,但是我认为它足够具体了。即使您仅指出我在概念上犯了错误的地方,也将不胜感激任何帮助。提前致谢。

4
解决具有初始值和最终值约束的耦合ODE
我的问题的实质如下:我有两个ODE的系统。一个具有初始值约束,另一个具有最终值约束。可以将其视为对某些变量具有初始值约束而对其他变量具有最终值约束的单个系统。 详细信息如下: 我正在尝试使用连续时间有限水平LQR控制器来驱动线性动力学系统。我想继续使用Python生态系统。 该系统是在形式,受X˙(t )= A x (t )+ B u (t )x˙(t)=Ax(t)+Bu(t)\dot{x}(t) = Ax(t) + Bu(t)x (0 )= x0x(0)=x0x(0)=x_0 LQR解决方案生成矩阵,使得在线性的最优控制输入u(t)为u (t )= K (t )x (t )。x (t )ķ(吨)K(t)K(t)x (t )x(t)x(t)u (t )= K(t )x (t )u(t)=K(t)x(t)u(t) = K(t)x(t) 其中ķ(t )= R− 1乙ŤP(吨)K(t)=R−1BTP(t)K(t) = R^{-1} B^T P(t) 和是解决一个连续时间黎卡提微分方程(请注意,此P (吨)是一个矩阵)P(吨)P(t)P(t)P(吨)P(t)P(t) …

2
有限体积代码的数据结构:数组与类
我必须为磁流体动力学(MHD)编写一个有限的体积代码。我以前写过数字代码,但没有达到这个规模。我只是想问一问,使用具有类的数据结构(面向对象的方法),或者只是针对速度,可伸缩性等对多个属性使用多个数组,这将是一个不错的选择。我打算用python编写代码,并且将fortran用于数字密集型部分。 python中的类的示例是 class Cell: def __init__(self, x, y, z, U): 数组可以简单地定义为 x[nx][ny][nz] y[nx][ny][nz] z[nx][ny][nz] U[nx][ny][nz] 等等

3
在python中网格化3D表面数据
我有一个3维点的数据集,我想使用python构建一个网格。我见过的所有软件都要求您提供优势。python中是否有一个程序将3D点作为输入并输出网格?如果可能的话,我希望网格划分是统一的。

3
泊松方程:通过拉格朗日乘法器将全梯度作为边界条件
我具有由泊松方程在两个维度支配的物理问题 我有两个梯度分量的测量 ∂ ü / ∂ X和 ∂ ú / ∂ ý沿边界的某些部分, Γ 米,所以想强加 ∂ û- ∇2u = f(x ,y),我ñΩ−∇2u=f(x,y),inΩ -\nabla^2 u = f(x,y), \; in \; \Omega ∂你/ ∂X∂u/∂x\partial{u}/\partial{x}∂你/ ∂ÿ∂u/∂y\partial{u}/\partial{y}Γ米Γm\Gamma_m 和传播到远场。∂ü∂X一世0= 克米,Ø ñΓ米∂u∂xi0=gm,onΓm \frac{\partial{u}}{\partial{x_i}}_0 = g_m, \; on \; \Gamma_m 切向梯度分量,,我可以整合,然后通过狄利克雷条件执行,使得 ∫Γ米∂ù∂ü∂X(t ,0 )∂u∂x(t,0)\frac{\partial{u}}{\partial{x}}_{(t,0)} 为了同时施加法向分量, ∂ ù∫Γ米∂ü∂X(t ,0 )ds …

2
CVXOPTVS。OpenOpt的
CVXOPT:http://abel.ee.ucla.edu/cvxopt/index.html OpenOpt:http://openopt.org/Welcome 他们之间有什么关系? 它们的优点/缺点分别是什么? 顺便说一句,还有其他值得注意的用于Python / C ++的高质量通用凸优化库吗?

2
共享内存并行编程的Python指南
我有为共享内存机器(在C和FORTRAN中)编码OpenMP的经验,可以执行简单的任务,例如矩阵加法,乘法等(仅看它如何与LAPACK竞争)。我知道OpenMP足以执行简单的任务,而无需查看文档。 最近,我转到我的项目中使用Python,除了绝对的基础知识之外,我没有Python方面的经验。 我有两个问题: 有没有很好的指南(在线PDF)来描述Python的共享内存并行计算? 实现它的最佳方法是什么?我看过一点,ctypes我不确定这是否是最好的方法。(最好的意思是,在程序员时间和系统时间之间要有一个很好的权衡。编码也不应该太繁琐,执行速度也不应该太慢)

1
二分图社区检测算法?
是否有用于igraph,networkX,R或Python等中实现的二分图(两模式网络)社区检测算法?尤其是,是否存在一种这样的实现方式,使之能够仅基于两种模式之一来限制对社区的检测?



4
Runge-Kutta和重用数据点
我正在尝试实现四阶Runge-Kutta方法以解决Python中的一阶ODE即。我了解该方法的工作原理,但是我正在尝试编写一种有效的算法,以最大程度地减少计算f(x,y)的次数,因为这样做成本很高。有人告诉我,可以重复使用先前在逐步增加但无法看到方法时计算出的数据点。有谁知道该怎么做还是不可能?dÿdX= f(x ,y)dydx=f(x,y)\frac{dy}{dx} = f(x,y)F(x ,y)f(x,y)f(x,y)

2
熊猫的局限性及其在Python中的替代方案
我在某处读到Pandas最初是为金融世界开发的,至少不是特别针对自然科学(物理学,生物学等)开发的,所以有没有类似的数据分析Python程序包更加“面向自然科学”? 我刚开始使用Pandas,已经遇到了两个问题,如果不使用其他软件包或自制解决方案便无法解决: 如何处理不确定性? 如何轻松定义我的数据单位? 也许还有其他问题,但我缺乏更准确的经验。目前,我考虑了不确定性软件包来解决第一点,但是我不确定它是否可以在Pandas上正常工作,并且不会降低计算速度。实际上,我并不是在寻找一种具有不确定性的计算方式,而只是一种将不确定性与导入的数据一起存储的简单方法。第二点,我没有找到比创建除DataFrame之外的字典来管理与每个数据关联的单元更好的解决方案。 如果您遇到过同样的问题,您是如何解决的?或者您在自然科学中使用了哪些其他软件包进行Python中的数据处理/存储/分析?

2
小范数调整的特征向量
我有一个变化缓慢的数据集,我需要跟踪其协方差矩阵的特征向量/特征值。 我一直在使用scipy.linalg.eigh,但是它太贵了,并且它没有使用我已经进行了分解的事实,该分解只是稍微不正确。 谁能建议一种更好的方法来解决此问题?

2
三阶与四阶辛积分器的测试结果很奇怪
在我的回答到关于MSE问题关于汉密尔顿的2D物理模拟,我一直在使用高阶建议辛积分。 然后,我认为演示不同时间步长对具有不同顺序的方法的全局精度的影响可能是一个好主意,为此我编写并运行了Python / Pylab脚本。为了比较,我选择了: (jump2) 我熟悉的Wikipedia的2阶示例,尽管我知道它的名称是jumpfrog, (ruth3)Ruth的三阶辛积分器, (ruth4)露丝的四阶辛格积分器。 奇怪的是,无论我选择什么时间步长,Ruth的三阶方法在我的测试中似乎都比Ruth的四阶方法更精确,甚至高出一个数量级。 因此,我的问题是:我在这里做错了什么?详细信息如下。 这些方法在具有可分离哈密​​顿量的系统中展现出它们的优势,即可以写为 H(q,p)=T(p)+V(q)H(q,p)=T(p)+V(q)H(q,p) = T(p) + V(q) ,其中qqq包括所有位置坐标, ppp包括共轭矩a, TTT表示动力学能量和VVV势能。 在我们的设置中,我们可以通过对其施加的质量进行归一化。因此,力变成加速度,而力矩变成速度。 辛积分器带有特殊的(给定的,恒定的)系数,我将它们标记为a1,…,ana1,…,ana_1,\ldots,a_n和b1,…,bnb1,…,bnb_1,\ldots,b_n。与那些系数,一个步骤,用于从时间演进系统ttt 到时间t + δŤt+δtt+\delta t的形式为 对于i = 1 ,… ,ni=1,…,ni=1,\ldots,n: 给定所有位置的向量q,计算所有加速度的向量Gggqqq 将所有速度的向量vvv改变b一世GδŤbigδtb_i\,g\,\delta t 变化矢量qqq的所有位置的一个一世vδŤaivδta_i\,v\,\delta t 现在的智慧在于系数。这些是 [a1b1a2b2][a1b1a2b2a3b3][a1b1a2b2a3b3a4b4]=[120121]=[23724−23341−124]=12−2–√3[1201−2√3211−2√32−2–√3121](leap2)(ruth3)(ruth4)[a1a2b1b2]=[121201](leap2)[a1a2a3b1b2b3]=[23−23172434−124](ruth3)[a1a2a3a4b1b2b3b4]=12−23[121−2321−2321201−231](ruth4)\begin{align} \begin{bmatrix} a_1 & a_2 \\ b_1 & b_2 \end{bmatrix} &= \begin{bmatrix} \frac{1}{2} & …

4
部分奇异值分解(SVD)的内存有效实现
为了简化模型,我想计算与矩阵最大20个奇异值相关的左奇异矢量,其中和。不幸的是,我的矩阵将是稠密的,没有任何结构。 Ñ ≈ 10 6 ķ ≈ 10 3甲A∈RN,kA∈RN,kA \in \mathbb R^{N,k}N≈106N≈106N\approx 10^6k≈103k≈103k\approx 10^3AAA 如果我只是svd从numpy.linalgPython模块中的例程中调用该大小的随机矩阵,则会遇到内存错误。这是由于的分配用于分解。甲= V 小号ùV∈RN,NV∈RN,NV\in \mathbb R^{N,N}A=VSUA=VSüA = VSU 周围有避免这种陷阱的算法吗?例如,通过仅建立与非零奇异值关联的奇异矢量。 我准备在计算时间和准确性上进行交易。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.