小编wil*_*il3的帖子

如何在没有输出的情况下打开IPython笔记本?

我有一个IPython笔记本,我不小心丢弃了一个巨大的输出(15 MB),崩溃了笔记本电脑.现在,当我打开笔记本电脑并尝试删除麻烦的电池时,笔记本电脑再次崩溃 - 从而阻止我解决问题并恢复笔记本电脑的稳定性.

我能想到的最好的解决方法是手动将输入单元格粘贴到新笔记本上,但有没有办法只打开笔记本而没有任何输出?

ipython ipython-notebook

13
推荐指数
4
解决办法
5413
查看次数

为什么dict.get(key)比dict [key]运行得慢

在运行数值积分器时,我注意到速度的明显差异取决于我如何在字典中提取字段的值

import numpy as np

def bad_get(mydict):
    '''Extract the name field using get()'''
    output = mydict.get('name', None)
    return output

def good_get(mydict):
    '''Extract the name field using if-else'''
    if 'name' in mydict:
        output = mydict['name']
    else:
        output = None
    return output


name_dict = dict()
name_dict['name'] = np.zeros((5000,5000))
Run Code Online (Sandbox Code Playgroud)

在我的系统上,我注意到以下区别(使用iPython)

%%timeit
bad_get(name_dict) 

The slowest run took 7.75 times longer than the fastest. This could mean that an intermediate result is being cached.
1000000 loops, best of 3: 247 ns per loop
Run Code Online (Sandbox Code Playgroud)

相比

%%timeit …
Run Code Online (Sandbox Code Playgroud)

python performance dictionary

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

scipy.special 导入失败“找不到符号:___addtf3”

每当我尝试运行此代码时:

from scipy.special import legendre
Run Code Online (Sandbox Code Playgroud)

我不断遇到以下错误。

ImportError: 

dlopen(/Users/william/miniconda/envs/myenv/lib/python3.4/site-packages/scipy/special/_ufuncs.so, 2): Symbol not found: ___addtf3
  Referenced from: /Users/william/miniconda/envs/prakenv/lib/python3.4/site-packages/scipy/special/_ufuncs.so
  Expected in: /usr/lib/libSystem.B.dylib
Run Code Online (Sandbox Code Playgroud)

我尝试恢复到以前版本的 scipy 并使用 Python 2.7 conda 环境,但问题仍然存在。我以前用 scipy 从来没有遇到过这个问题。非常感谢!

python scipy

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

通过所有相交条目的并集更新所有列表条目的最快方法

我正在寻找一种快速方法来遍历集合列表,并通过查找与列表中至少共享一个元素的任何其他元素的并集来扩展每个集合。

例如,假设我有四行数据,其中每一行对应于一组唯一元素

0, 5, 101
8, 9, 19, 21
78, 79
5, 7, 63, 64
Run Code Online (Sandbox Code Playgroud)

第一行和最后一行有相交元素 5,因此在执行操作后我想要并集

0, 5, 7, 63, 64, 101
8, 9, 19, 21
78, 79
0, 5, 7, 63, 64, 101
Run Code Online (Sandbox Code Playgroud)

现在,我几乎可以用两个循环来做到这一点:

def consolidate_list(arr):
    """
    arr (list) : A list of lists, where the inner lists correspond to sets of unique integers
    """
    arr_out = list()
    for item1 in arr:
        item_additional = list() # a list containing all overlapping elements
        for item2 in arr:
            if len(np.intersect1d(item1, …
Run Code Online (Sandbox Code Playgroud)

python arrays algorithm performance intersection

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