小编CDJ*_*DJB的帖子

数学公式的树形形式(作为点串)

我有公式

a * b * cos( c * x ) + b

是否有可能像 Mathematica 一样创建公式的树结构(https://reference.wolfram.com/language/GraphUtilities/ref/ExpressionTreePlot.html

对于这个公式,例如在 numpy、sympy 甚至张量流中?


编辑

在评论的帮助下,我发现,人们可以使用 graphviz 来绘制它,就像 https://docs.sympy.org/latest/tutorial/manipulation.html中第一张图片中所说的那样 ,但我不这样做明白,如何。

python numpy sympy python-3.x tensorflow

5
推荐指数
1
解决办法
788
查看次数

Networkx:使用给定数量的社区创建有向无标度图

我正在尝试与 Networkx 合作创建一个由固定数量社区组成的图,其中为给定社区内的节点添加边和为不同社区之间的节点添加边的概率不同。我已经查看了定向scale_free_graph的生成器。以下是如何使用它创建三个断开连接图的示例:

import matplotlib.pyplot as plt
import networkx as nx
import numpy as np
N_tot = 100 # total number of nodes
pos_frac = 0.1 # fraction of positive nodes
neg_frac = 0.1 # fraction of negative nodes
N_p = int(pos_frac*N_tot) # number of positive nodes
N_n = int(neg_frac*N_tot) # number of negative nodes
N_0 = int(N_tot - (N_p + N_n)) # number of neutral nodes
G1 = nx.scale_free_graph(N_p, seed=3)
G2 = nx.scale_free_graph(N_n, seed=2)
G3 = nx.scale_free_graph(N_0, …
Run Code Online (Sandbox Code Playgroud)

python graph-theory networkx

5
推荐指数
0
解决办法
312
查看次数

Mutagen 的 save() 不会设置或更改 MP3 文件的封面

我正在尝试使用Mutagen以下列方式更改一堆 MP3 文件的 ID3(版本 2.3)封面艺术:

from mutagen.mp3 import MP3
from mutagen.id3 import APIC

file = MP3(filename)

with open('Label.jpg', 'rb') as albumart:
    file.tags['APIC'] = APIC(
        encoding=3,
        mime='image/jpeg',
        type=3, desc=u'Cover',
        data=albumart.read()
    )
file.save(v2_version=3)
Run Code Online (Sandbox Code Playgroud)

然而,文件(或至少APIC标签)保持不变,通过读回标签来检查。但是,在系统文件资源管理器中,该文件确实显示了更新的Date modified. 如何让 Mutagen 正确更新封面?

python mp3 id3-tag mutagen id3v2

5
推荐指数
2
解决办法
518
查看次数

将非方邻接矩阵导入 Networkx python

我在下面有一些 pandas 数据框形式的数据,其中列代表离散技能,行代表离散工作。仅当该技能是工作所需时才存在 1,否则为 0。

     skill_1, skill_2,
job_1      1,       0,       
job_2      0,       0,       
job_3      1,       1,       
Run Code Online (Sandbox Code Playgroud)

我想使用 networkx 创建一个图表来可视化工作和技能之间的关系。我尝试了两种方法,一种是针对数据框本身,nx.from_pandas_adjacency另一种是针对nx.from_numpy_matrix. 后一种方法应用于数据帧的 numpy 表示,其中删除了列名和行名。

无论哪种情况,都会引发错误,因为这是一个非方矩阵。这是有道理的,因为 networkx 可能将列和行解释为同一组节点。然而,这里的列和节点代表明显不同的东西。两项工作通过它们共享的技能连接起来,两种技能通过它们共享的工作连接起来,但任何两种技能或任何两个工作之间不存在直接优势。

鉴于我的行和列是不同的节点集,如何将数据导入到 networkx 中?

python numpy graph-theory networkx pandas

5
推荐指数
1
解决办法
2289
查看次数

空手道赛跑者在等待并行功能完成时挂起

我正在尝试使用 Karate Runner 执行一些测试 -

@KarateOptions(tags = {"~@ignore"}) 
//@KarateOptions(features = "examples/test.feature")
public class KarateTestRunner {
    @BeforeClass
    public static void beforeClass() throws Exception {        
        //TestBase.beforeClass();
    } 

    @Test
    public void testParallel() {
        Results results = Runner.parallel(getClass(), 5);
        generateReport(results.getReportDir());
        assertTrue(results.getErrorMessages(), results.getFailCount() == 0);        
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试执行我的测试时:

-mvn test -Dtest=KarateTestRunner -DfailIfNoTests=false
Run Code Online (Sandbox Code Playgroud)

它显示——

{ ","type":"log","logger":"com.intuit.karate.Runner","thread":"main","level":"INFO","categories":[],"msg":"waiting for parallel features to complete ..." }
Run Code Online (Sandbox Code Playgroud)

它挂在这里。没有日志。

任何人都可以请帮忙。

testing maven karate

5
推荐指数
1
解决办法
1384
查看次数

带有 TikZ 样式路径装饰的 Matplotlib 注释箭头

我最近从使用 TeX (PGF/TikZ) 制作插图转向使用 Matplotlib 来达到同样的目的。主要原因是我的很多科学代码都是用python写的,有些插图应该直接使用python计算的输出。

我一直在使用annotate花哨的箭头补丁,它已经做了很多我需要什么,比如绘图弯箭(例如参见这里)。与 TikZ 相比,我遗漏了一件特别的事情:路径装饰(参见https://tex.stackexchange.com/a/193451/96546以获取一个简单的 TikZ 示例)。我的问题是是否有办法在 matplotlib 中进行这种 TikZ 风格的路径装饰?

由于这是相当广泛的,我将设置一个特定的任务(取自 TeX.SE 问题https://tex.stackexchange.com/questions/193444/sketching-simple-arrows-with-different-direction):我将如何绘制Matplotlib 中的以下图片?

在此处输入图片说明

我知道这个问题,但实现实际上并不是端点之间线的装饰,而是绘制的函数。

python diagram drawing matplotlib tikz

5
推荐指数
1
解决办法
684
查看次数

如何检查浮点数列表加起来是否为整数?

我想找到浮点数列表的总和并检查它是否是整数:

l = [0.85, 0.85, 0.15, 0.15]
Run Code Online (Sandbox Code Playgroud)

l显然,和是 2.0。但 Python 不同意,由于浮点数限制

> sum(l)
1.9999999999999998
Run Code Online (Sandbox Code Playgroud)

因此,我选择的方法sum(l).is_integer(),将返回False

评估列表是否为整数的更好方法是什么?

python math floating-point sum list

4
推荐指数
1
解决办法
205
查看次数

Sympy 返回 log 而不是 ln

我有这个等式:

\n\n
import sympy as sp\n\nx = sp.Symbol(\xe2\x80\x98x\xe2\x80\x99, real = True)\nfx = sp.log(x,3)\n\nsp.diff(fx, x) \n
Run Code Online (Sandbox Code Playgroud)\n\n

Sympy 返回:

\n\n
1/(x*log(3))\n
Run Code Online (Sandbox Code Playgroud)\n\n

Sympy 应该返回:

\n\n
1/(x*ln(3))\n
Run Code Online (Sandbox Code Playgroud)\n\n

为什么 Sympy 返回对数函数而不是自然对数函数?

\n

python math sympy derivative python-3.x

4
推荐指数
1
解决办法
1万
查看次数

以更好的模式重写我的简单 Python 代码

我有一个功能

def max_f(tup, val):
    max = tup[0](val)
    out = tup[0]
    for funz in tup:
        new = funz(val)
        if new > max: 
            max = new
            out = funz
    return out
Run Code Online (Sandbox Code Playgroud)

我想以更好的方式写它。我试过

def max_f2(tup, val):
    return (max(funz(val) for funz in tup))
Run Code Online (Sandbox Code Playgroud)

但我应该返回一个函数,而不是一个值。我怎么能?

这些是正确输出的一些示例

tupleFunz=(lambda x: x + 3 ,lambda x: x * 2,lambda x: x % 2)
max_f(tupleFunz,4)(8) #=> 16
max_f(tupleFunz,1)(8) #=> 11 
Run Code Online (Sandbox Code Playgroud)

python lambda for-loop tuples function

4
推荐指数
1
解决办法
175
查看次数

使用 Matplotlib 在圆环图上显示百分比

我有以下代码来生成漂亮的圆环图:

%matplotlib inline
import matplotlib.pyplot as plt

size_of_groups=[12,11,30,3]

colors = ['#F92969','#FACA0C','#17C37B','#D9DFEB']

my_pie,_ = plt.pie(size_of_groups,radius = 1.2,colors=colors)

plt.setp(my_pie, width=0.6, edgecolor='white') # 

plt.show()
Run Code Online (Sandbox Code Playgroud)

我没有采用在圆环图中间放置一个圆圈的方法 - 这是因为我需要使绘图的内部透明以用于其他目的。

现在,上面的输出是这样的: 图形

但是,当我更改代码以添加该,autopct="%.1f%%"行时,它会中断,但无论如何都会输出带有标签的饼图(尽管不是甜甜圈):

%matplotlib inline
import matplotlib.pyplot as plt

size_of_groups=[12,11,30,3]

colors = ['#F92969','#FACA0C','#17C37B','#D9DFEB']

my_pie,_ = plt.pie(size_of_groups,radius = 1.2,colors=colors,autopct="%.1f%%")

plt.setp(my_pie, width=0.6, edgecolor='white') # 

plt.show()
Run Code Online (Sandbox Code Playgroud)

图2

错误是:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-39-ada97a3edee3> in <module>
     13 
     14 # Create a pieplot
---> 15 my_pie,_ = plt.pie(size_of_groups,radius = 1.2,colors=colors,autopct="%.1f%%")
     16 
     17 #,autopct="%.1f%%"

ValueError: too many values to …
Run Code Online (Sandbox Code Playgroud)

python plot graph matplotlib donut-chart

3
推荐指数
1
解决办法
2418
查看次数