#split the equation into 2 parts using the = sign as the divider, parse, and turn into an equation sympy can understand
equation = Eq(parse_expr(<input string>.split("=")[0]), parse_expr(<input string>.split("=")[1]))
answers = solve(equation)
#check for answers and send them if there are any
if answers.len == 0:
response = "There are no solutions!"
else:
response = "The answers are "
for answer in answers:
response = response + answer + ", "
response = response[:-2]
await self.client.send(response, message.channel)
Run Code Online (Sandbox Code Playgroud)
我试图制作一个使用 sympy 来解决代数的不和谐机器人,但我一直遇到上述实现的错误。有人可以帮忙吗?
但是对于输入 …
我需要在许多点上评估用户给出的函数(f')的导数。这些点位于列表中(或 numpy.array、pandas.Series...)。当 f' 取决于 sympy 变量时,我获得了预期值,但当 f' 是常量时,我获得了预期值:
import sympy as sp
f1 = sp.sympify('1')
f2 = sp.sympify('t')
lamb1 = sp.lambdify('t',f1)
lamb2 = sp.lambdify('t',f2)
print(lamb1([1,2,3]))
print(lamb2([1,2,3]))
Run Code Online (Sandbox Code Playgroud)
我得到:
1
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
第二个是好的,但我预计第一个将是一个列表。
这些函数位于矩阵中,是 sympy 运算(例如求导)的最终结果。f1 和 f2 的确切形式因问题而异。
我的数据集采用以下形式:
Data[0] = [headValue,x0,x1,..xN]
Data[1] = [headValue_ya,ya0,ya1,..yaN]
Data[2] = [headValue_yb,yb0,yb1,..ybN]
...
Data[n] = [headvalue_yz,yz0,yz1,..yzN]
Run Code Online (Sandbox Code Playgroud)
我想绘制 f(y*) = x,所以我可以用不同的颜色可视化同一图中的所有线图,每种颜色由 headervalue_y* 决定。
我还想添加一个颜色条,其颜色与线条匹配,因此与标题值匹配,因此我们可以直观地链接哪个标题值导致哪种行为。
这是我的目标:(来自 Lacroix B、Letort G、Pitayu L 等人的情节。微管动力学尺度与细胞大小设置主轴长度和装配时间。开发细胞。2018;45(4):496-511 .e6. doi:10.1016/j.devcel.2018.04.022)
我在添加颜色条时遇到了麻烦,我尝试从颜色图中提取 N 种颜色(N 是我的不同 headValues 的数量,或列 -1),然后为每条线图添加对应的颜色,这是我要澄清的代码:
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
Data = [['Time',0,0.33,..200],[0.269,4,4.005,...11],[0.362,4,3.999,...16.21],...[0.347,4,3.84,...15.8]]
headValues = [0.269,0.362,0.335,0.323,0.161,0.338,0.341,0.428,0.245,0.305,0.305,0.314,0.299,0.395,0.32,0.437,0.203,0.41,0.392,0.347]
# the differents headValues_y* of each column here in a list but also in Data
# with headValue[0] = Data[1][0], headValue[1] = Data[2][0] ...
cmap = …
Run Code Online (Sandbox Code Playgroud) 我一直在尝试绘制贝茨分布曲线,贝茨分布是n
独立标准均匀变量(从 0 到 1)的平均值的分布。
(我在时间间隔上工作[-1;1]
,我对变量进行了简单的更改)。
在 n 次之后,曲线不稳定,这阻止了我继续前进。为了考虑变量x是连续的,我在10**6个样本中采样了interval。以下是不同的一些示例n
:
但是n
大于29,曲线发散,并且越大n
,发散引起的变形越接近曲线的(平均)中心:
Bates 概率分布定义如下:
我的代码:
samples=10**6
def combinaison(n,k): # combination of K out of N
cnk=fac(n)/(fac(k)*fac(abs(n-k))) # fac is factoriel
return cnk
def dens_probas(a,b,n):
x=np.linspace(a, b, num=samples)
y=(x-a)/(b-a)
F=list()
for i in range(0,len(y)):
g=0
for k in range(0,int(n*y[i]+1)):
g=g+pow(-1,k)*combinaison(n,k)*pow(y[i]-k/n,n-1)
d=(n**n/fac(n-1))*g
F.append(d)
return F
Run Code Online (Sandbox Code Playgroud)
任何想法来纠正更大的分歧n
?
我有一个 distplot,我想绘制一条从 0 到平均频率的 y 值的平均线。我想这样做,但是当 distplot 执行时让该行停止。为什么没有一个简单的参数来做到这一点?这将非常有用。
我有一些代码可以让我几乎到达那里:
plt.plot([x.mean(),x.mean()], [0, *what here?*])
Run Code Online (Sandbox Code Playgroud)
这段代码按照我想要的方式绘制了一条线,除了我想要的 y 值。使 y 最大值停止在 distplot 中的均值频率处的正确数学方法是什么?下面是我的一个 distplots 的示例,使用 0.6 作为 y-max。如果有一些数学方法可以让它停在均值的 y 值处,那就太棒了。我试过将平均值除以计数等。
我有一个数据框A
date Cluster count Users
01/01/2021 ClusterA 10
01/01/2021 ClusterB 10
01/01/2021 ClusterB 9
02/01/2021 ClusterA 14
02/01/2021 ClusterB 10
02/01/2021 ClusterB 5
Run Code Online (Sandbox Code Playgroud)
我想可视化集群之间的用户迁移,为此,我首先生成以下 dataframeB :
date Source Target Value
02/01/2021 ClusterA ClusterA 8
02/01/2021 ClusterA ClusterB 2
02/01/2021 ClusterB ClusterB 8
02/01/2021 ClusterB ClusterA 2
02/01/2021 ClusterC ClusterA 4
02/01/2021 ClusterC ClusterC 5
Run Code Online (Sandbox Code Playgroud)
我画了桑基图:
import plotly.graph_objects as go
label = ["ClusterA01/01/2021","ClusterB01/01/2021","ClusterC01/01/2021","ClusterA02/01/2021","ClusterB02/01/2021","ClusterC02/01/2021"]
source = [0, 0, 1, 1, 2,2]
target = [3, 4, 3, 4, 3,5]
value = [8, 2, …
Run Code Online (Sandbox Code Playgroud) 我想绘制一些代表不同物质质量流量的桑基图以供报告。我想用图例来区分这些物质,但我不知道该怎么做。我尝试过showlegend
但没有成功
import plotly.graph_objects as go
fig = go.Figure(data=[go.Sankey(
node = dict(
pad = 15,
thickness = 20,
line = dict(color = "black", width = 0.5),
label = ['household','industry','waste'],
color = "blue"
),
link = dict(
source = [0,1,0,1], # indices correspond to labels, eg A1, A2, A2, B1, ...
target = [2,2,2,2],
value = [7190,2074,4483,74.50],
label = ['aluminium','aluminium','copper','copper'],
color = ['#d7d6d6','#d7d6d6','#f3cf07','#f3cf07']
))])
fig.update_layout(showlegend=True)
fig.show()
Run Code Online (Sandbox Code Playgroud)
我希望我的 SymPy 结果显示为精确结果而不是小数结果。我查看了 SymPy 文档,但找不到任何有用的信息。
为了说明问题,这里是一些示例代码:
from sympy import *
u = symbols("u")
integrate((1+u)**(1/2), (u, 0, 1))
Run Code Online (Sandbox Code Playgroud)
输出:
1.21895141649746
Run Code Online (Sandbox Code Playgroud)
预期结果:
(4/3)*sqrt(2)-(2/3)
Run Code Online (Sandbox Code Playgroud) 我有一个有理函数:f(x) = P(x)/Q(x)
。\n例如:
f(x) = (5x + 3)/(1-x^2)\n
Run Code Online (Sandbox Code Playgroud)\n\n因为 f(x) 是生成函数,所以可以写为:
\n\nf(x) = a0 + a1*x + a2*x\xc2\xb2 + ... + a_n*x^n + ... = P(x)/Q(x)\n
Run Code Online (Sandbox Code Playgroud)\n\n如何使用 sympy 求生成函数的第f(x)
n 项(即a_n
)?
如果 Sympy 中没有这样的实现,我也很想知道这是否在其他包中实现,例如 Maxima。
\n\n我很感激任何帮助。
\n我正在尝试制作一个上三角相关矩阵,理想情况下我想叠加到下三角矩阵的另一张图片上。因此,我希望将蒙版颜色设置为无或透明(否则,如果它是白色的,我将无法叠加)...知道如何在seaborn中执行此操作吗?
编辑
这就是我想做的:使用数据框中的一组列,我想绘制这些列的配对图(下三角形)和相关图(上三角形)
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
rs = np.random.RandomState(112358)
d1 = pd.DataFrame(data=rs.normal(size=(100, 10)), columns=[*'abcdefghij' ])
corr1 = d1.corr()
mask1 = np.tril(np.ones_like(corr1, dtype=bool))
fig, ax = plt.subplots(figsize=(11, 9))
sns.heatmap(corr1, mask=mask1, cmap='PRGn', vmax=.3, vmin=-.3,
square=True, linewidths=.5, cbar_kws={"shrink": .85, "pad":-.01}, ax=ax)
def hide_current_axis(*args, **kwds):
plt.gca().set_visible(False)
e = sns.pairplot(d1)
e.map_upper(hide_current_axis)
plt.show()
Run Code Online (Sandbox Code Playgroud)
这段代码当然可以工作,但它分别绘制了两个数字。
python ×9
sympy ×4
matplotlib ×3
math ×2
plotly ×2
seaborn ×2
distribution ×1
maxima ×1
numpy ×1
optimization ×1
python-3.x ×1