小编Fer*_*dox的帖子

如何通过sympy在ipython笔记本上打印漂亮?

我试过pprint,print前者只打印Unicode版本,后者不做漂亮的打印.

from sympy import symbols, Function
import sympy.functions as sym
from sympy import init_printing
init_printing(use_latex=True)
from sympy import pprint
from sympy import Symbol

x = Symbol('x')

# If a cell contains only the following, it will render perfectly.
(pi + x)**2

# However I would like to control what to print in a function, 
# so that multiple expressions can be printed from a single notebook cell.
pprint((pi + x)**2)
Run Code Online (Sandbox Code Playgroud)

python pretty-print sympy jupyter jupyter-notebook

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

覆盖{...}符号所以我得到一个OrderedDict()而不是一个dict()?

我想像配置文件一样使用.py文件.因此,使用{...}符号我可以使用字符串作为键创建字典,但定义顺序在标准python字典中丢失.

我的问题:是否有可能覆盖{...}符号,以便我得到一个OrderedDict()而不是dict()

我希望用OrderedDict(dict = OrderedDict)简单地覆盖dict构造函数会起作用,但事实并非如此.

例如:

dict = OrderedDict
dictname = {
   'B key': 'value1',
   'A key': 'value2',
   'C key': 'value3'
   }

print dictname.items()
Run Code Online (Sandbox Code Playgroud)

输出:

[('B key', 'value1'), ('A key', 'value2'), ('C key', 'value3')]
Run Code Online (Sandbox Code Playgroud)

python dictionary overriding ordereddictionary built-in

41
推荐指数
6
解决办法
2万
查看次数

当舍入到n个有效十进制数字时确定两个数字是否几乎相等的函数

我被要求测试第三方提供的图书馆.众所周知,该库对于n个有效数字是准确的.可以安全地忽略任何不太重要的错误.我想写一个函数来帮助我比较结果:

def nearlyequal( a, b, sigfig=5 ):
Run Code Online (Sandbox Code Playgroud)

此函数的目的是确定两个浮点数(a和b)是否大致相等.如果a == b(完全匹配),或者当以十进制写入舍入为sigfig有效数字时a和b具有相同的值,则该函数将返回True .

任何人都可以建议一个好的实施?我写了一个迷你单元测试.除非你能在我的测试中看到一个错误,否则一个好的实现应该传递以下内容:

assert nearlyequal(1, 1, 5) 
assert nearlyequal(1.0, 1.0, 5) 
assert nearlyequal(1.0, 1.0, 5) 
assert nearlyequal(-1e-9, 1e-9, 5) 
assert nearlyequal(1e9, 1e9 + 1 , 5) 
assert not nearlyequal( 1e4, 1e4 + 1, 5) 
assert nearlyequal( 0.0, 1e-15, 5 ) 
assert not nearlyequal( 0.0, 1e-4, 6 ) 
Run Code Online (Sandbox Code Playgroud)

补充说明:

  1. 值a和b可以是int,float或numpy.float64类型.值a和b将始终为相同类型.转换不会在函数中引入额外的错误,这一点至关重要.
  2. 让我们保持这个数字,所以转换为字符串或使用非数学技巧的函数并不理想.该程序将由一位数学家进行审核,他希望能够证明该功能能够完成它应该做的事情.
  3. 速度......我必须比较很多数字,所以越快越好.
  4. 我有numpy,scipy和标准库.对我来说,任何其他事情都很难获得,特别是对于项目的这么小的一部分.

python math floating-point numpy

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

如何在python @ functools.lru_cache上使用cache_clear()

文件说明:

装饰器还提供cache_clear()清除或使缓存无效的功能.

它没有提供有关如何使用的任何示例或指导 cache_clear()

我有两个问题:

  • 如何cache_clear()从不同的功能运行?
  • 如果我cache_clear()有条件地将一个调用放在正在缓存的函数中,它会被执行吗?

python python-3.x

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

功能上有没有numpy组?

numpy中是否有任何函数可以将第一列下面的数组分组?

我在互联网上找不到任何好的答案..

>>> a
array([[  1, 275],
       [  1, 441],
       [  1, 494],
       [  1, 593],
       [  2, 679],
       [  2, 533],
       [  2, 686],
       [  3, 559],
       [  3, 219],
       [  3, 455],
       [  4, 605],
       [  4, 468],
       [  4, 692],
       [  4, 613]])
Run Code Online (Sandbox Code Playgroud)

通缉输出:

array([[[275, 441, 494, 593]],
       [[679, 533, 686]],
       [[559, 219, 455]],
       [[605, 468, 692, 613]]], dtype=object)
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

36
推荐指数
5
解决办法
3万
查看次数

创建一个3D矩阵

如何在MATLAB中定义3D矩阵?

例如,尺寸(8 x 4 x 20)的矩阵或者将第三维添加到现有的2D矩阵中?

matlab matrix

35
推荐指数
3
解决办法
12万
查看次数

Python eval:如果我禁用内置和属性访问,它仍然很危险吗?

我们都知道这eval很危险,即使你隐藏了危险的函数,因为你可以使用Python的内省功能深入挖掘并重新提取它们.例如,即使您删除__builtins__,也可以使用它来检索它们

[c for c in ().__class__.__base__.__subclasses__()  
 if c.__name__ == 'catch_warnings'][0]()._module.__builtins__
Run Code Online (Sandbox Code Playgroud)

但是,我见过的每个例子都使用属性访问.如果我禁用所有内置函数禁用属性访问(通过使用Python令牌化程序对输入进行标记,并在具有属性访问令牌时拒绝它),该怎么办?

在你问之前,不,对于我的用例,我不需要其中任何一个,所以它不会太瘫痪.

我想要做的是让SymPy的同情功能更安全.目前,它对输入进行了标记,对其进行了一些转换,并在命名空间中对其进行了演绎.但它不安全,因为它允许属性访问(即使它真的不需要它).

python eval python-internals

35
推荐指数
5
解决办法
4898
查看次数

在函数结束时设置调试器断点而不返回

我正在调试f()没有的方法return.

class A(object):

    def __init__(self):
        self.X = []

    def f(self):            
        for i in range(10):
            self.X.append(i)
Run Code Online (Sandbox Code Playgroud)

我需要看看这个方法X在调用后如何修改变量.为此,我return在方法的末尾插入一个,并在那里设置断点:

在此输入图像描述

这样,一旦方法到达它return,我就可以看到我的变量的值X.


这样做,但我很确定有更好的方法.每次我需要调试它时编辑方法或函数似乎很愚蠢.

问题:
是否有不同的方法(例如调试器中的选项)在没有的方法结束时设置断点return

(请注意,在鼠标悬停时,在函数调用和使用时设置断点Step Over不会显示X,因为该函数是从其他模块调用的.)

python debugging breakpoints pycharm python-3.4

33
推荐指数
4
解决办法
3068
查看次数

在单元测试中使用随机值有哪些缺点?

我想知道在一些单元测试中使用随机值的缺点是什么.


我说的是一个大型系统,有许多服务器和高容量的非确定性输入.当我说非确定性时,我正在谈论发送的消息,你抓住你能做到的,尽你所能.有许多类型的消息,因此输入可能非常复杂.我无法想象为这么多场景编写代码,而简单的非随机(确定性)消息的生成器也不够好.这就是为什么我想要进行随机单元测试或服务器测试,以便在出现故障时写入日志.我更喜欢unittest而不是随机注射器,因为我希望它作为夜间构建自动化测试的一部分运行.

unit-testing

30
推荐指数
4
解决办法
5881
查看次数

使用Python 2.7在Windows上运行Scapy

我喜欢在Windows 7下使用Scapy和Python v2.7.

  • 如何为Python 2.7安装所需的模块pypcap?
  • 是否可以使用py2exe等分发工具将Scapy的Python脚本变为独立的Windows应用程序?

我使用的特定Python发行版是Enthought Python发行版7.02.

python windows scapy python-2.7

29
推荐指数
3
解决办法
5万
查看次数