小编OnS*_*ike的帖子

打开'ipython notebook'为:IPython notebook vs Jupyter

我希望找到更多关于以下内容的文档:

从一台计算机:C:\Python>ipython notebook将浏览器打开为"IPython Notebook".

从第二台计算机:C:\Python>ipython notebook打开浏览器'Jupyter'.

我没有偏好,但是当从'Jupyter'浏览器保存时,我无法再在'IPython Notebook'浏览器中打开.ipnb文件.我遇到了"错误请求"错误.

最初我假设'ipython notebook'已更新为使用'Jupyter'作为浏览器,所以我pip install "ipython[notebook]"在两台计算机上更新()都没有效果.显然我错过了一些东西.


ipython notebook切换到使用Jupyter?如果是这样,我是否错误地更新了IPython?

ipython ipython-notebook jupyter

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

使用相同键的(嵌套)词典的Pythonic替代?

我发现自己避免使用字典,因为通常,将近一半的代码是重复的.我通常在嵌套字典中执行此操作,其中所有子字典包含相同的键,但具有不同的值.

我手动创建一个大型父字典,其中每个键包含一个嵌套字典,用于外部模块.嵌套字典都使用相同的键来定义配置参数.这种用法是明确的并且有效但是为我手动创建的每个嵌套字典重新键入或复制/粘贴密钥感觉很愚蠢.我并不过分担心优化内存或性能,只是想知道我是否应该这样做,更多Pythonic方式.

作为一个简单的例子和​​模式经常看到:

people_dict = {
    "Charles Lindberg": {"address": "123 St.", 
                         "famous": True}, 
    "Me": {"address": "456 St.",
           "famous": False}
    }

>>>people_dict["Charles Lindberg"]["address"]
"123 St."
Run Code Online (Sandbox Code Playgroud)

虽然字典启用了显式代码,但是使用重复键定义嵌套字典会很繁琐且容易出错.在此示例中,嵌套字典的一半是所有嵌套字典共有的代码重复代码.我已经尝试使用元组来消除重复的密钥但发现这导致了脆弱的代码 - 位置的任何变化(而不是字典键)都会失败.这也导致代码不明确且难以遵循.

people_dict = {
        "Charles Lindberg": ("123 St.", True), 
        "Me": ("456 St.", False),
        }    

>>>people_dict["Charles Lindberg"][0]
"123 St."
Run Code Online (Sandbox Code Playgroud)

相反,我编写了一个类来封装相同的信息:这成功地减少了重复代码......

class Person(object):
    def __init__(self, address, famous=False):
        self.address = address
        self.famous = famous

people_dict = [
    "Charles Lindberg": Person("123 St.", famous=False), 
    "Me": Person("456 St."), 
    ]

>>>people_dict["Charles Lindberg"].address
"123 St." 
Run Code Online (Sandbox Code Playgroud)

创建一个类似乎有点矫枉过正......标准数据类型似乎太基础了......

我想有更好的方法在Python中完成这个,而不必编写自己的类?

在使用公共密钥创建嵌套字典时,避免重复代码的最佳方法是什么?

python dictionary class namedtuple

7
推荐指数
1
解决办法
3268
查看次数

将 sympy 表达式分解为矩阵系数?

我试图勤奋地查看文档,但一无所获。

我正在尝试将表达式中的项分解或消除为矩阵形式。我的问题似乎与多项式因式分解不同(因为我计划实现一个函数phi(x,y,z) = a_1 + a_2*x + a_3*y + a_4*z

import sympy
from sympy import symbols, pprint
from sympy.solvers import solve

phi_1, phi_2, x, a_1, a_2, L = symbols("phi_1, phi_2, x, a_1, a_2, L")

#Linear Interpolation function: phi(x)
phi = a_1 + a_2*x
#Solve for coefficients (a_1, a_2) with BC's: phi(x) @ x=0, x=L
shape_coeffs = solve([Eq(phi_1, phi).subs({x:0}), Eq(phi_2, phi).subs({x:L})], (a_1, a_2))
pprint(shape_coeffs)
#Substitute known coefficients
phi = phi.subs(shape_coeffs)
pprint(phi)
Run Code Online (Sandbox Code Playgroud)

这按预期工作,但是,我想将其分解为矩阵形式,其中:

当前的和期望的

我已经尝试过factor()cancel()as_coefficient()没有成功。从纸面上看,这是一个微不足道的问题。我在 …

python matrix symbolic-math sympy

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