相关疑难解决方法(0)

为什么我不能在numpy中提升到负面的力量?

我正在模拟Riemann theta函数:

import numpy as np
def theta(s, n=100):
    a_range = np.arange(2, n + 1)
    return 1 + sum(1/(a_range ** s))
Run Code Online (Sandbox Code Playgroud)

它不适用于否定s; 例如theta(-2)导致此错误:

      1 def theta(s, n=100):
      2     a_range = np.arange(1)
----> 3     return 1 + sum(1/(a_range ** s))
      4 
      5 theta(-2)

      ValueError: Integers to negative integer powers are not allowed.
Run Code Online (Sandbox Code Playgroud)

为什么?x^-1应该只是1/x如果我正确地回忆起我的数学.

python numpy

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

为什么在这种情况下字典查找速度不快?

我最近询问了创建 10 的幂的最快方法,结果发现最快的方法实际上是一种偷偷摸摸的解决方法,您首先创建所有可能的值,然后在需要时简单地查找它们。

在解决方案中,alist被用作查找表,但是,我刚刚了解到,在查找操作方面dicts 应该要快得多(另请参见此处)。但是当我尝试使用 adict作为查找表时,过程实际上更慢

n = 200
 18 ns   18 ns   18 ns  f[n]  # list
 22 ns   22 ns   22 ns  g[n]  # dict

n = -200
 18 ns   18 ns   18 ns  f[n]  # list
 29 ns   29 ns   29 ns  g[n]  # dict
Run Code Online (Sandbox Code Playgroud)

这是为什么?这是否与它们是keys整数而不是字符串有关?(而且我猜sets在这种情况下不能使用?)

这是我运行的代码:

from timeit import repeat


solutions = [
    'f[n]  # list',
    'g[n]  # dict', …
Run Code Online (Sandbox Code Playgroud)

python lookup dictionary list

0
推荐指数
1
解决办法
203
查看次数

标签 统计

python ×2

dictionary ×1

list ×1

lookup ×1

numpy ×1