小编ywa*_*wat的帖子

Cython:cimport和import numpy as(both)np

在Cython文档的教程中,有numpy模块的cimport和import语句:

import numpy as np
cimport numpy as np
Run Code Online (Sandbox Code Playgroud)

我发现这个约定在numpy/cython用户中很受欢迎.

这看起来很奇怪的我,因为他们命名为NP.在哪部分代码中,使用了导入/ cimported np?为什么cython编译器不会混淆它们?

python numpy cython python-import

26
推荐指数
1
解决办法
6591
查看次数

如何在Python中扩展/连接两个迭代器

我希望以有效的方式连接两个迭代器.

假设我们有两个迭代器(在Python3中)

l1 = range(10)      # iterator over 0, 1, ..., 9
l2 = range(10, 20)  # iterator over 10, 11, ..., 19
Run Code Online (Sandbox Code Playgroud)

如果我们将它们转换为列表,就很容易连接起来

y = list(l1) + list(l2)  # 0, 1, ,..., 19
Run Code Online (Sandbox Code Playgroud)

但是,这可能效率不高.

我想做点什么

y_iter = l1 + l2  # this does not work
Run Code Online (Sandbox Code Playgroud)

在Python3中执行此操作的好方法是什么?

python iterator list python-3.x

13
推荐指数
2
解决办法
8367
查看次数

`dpkg --configure -a` 挂起

我使用的是 Ubuntu 16.04。

当我更新时,我收到以下消息

$ sudo apt-get update
....
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. 
Run Code Online (Sandbox Code Playgroud)

根据错误消息,我尝试

$ sudo dpkg --configure -a
setting up snapd (2.14.2~16.04) ...
Run Code Online (Sandbox Code Playgroud)

然后它永远挂起。有谁知道我该如何解决这个问题?谢谢。

configure dpkg

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

排序多个列表的最快方法 - Python

我有两个列表,x和y,我想要排序x并通过x排序的排列来置换y.例如,给定

x = [4, 2, 1, 3]
y = [40, 200, 1, 30]
Run Code Online (Sandbox Code Playgroud)

我想得到

x_sorted = [1,2,3,4]
y_sorted = [1, 200, 30, 40]
Run Code Online (Sandbox Code Playgroud)

正如过去的问题所讨论的,解决这个问题的一个简单方法是

x_sorted, y_sorted = zip(*sorted(zip(x,y)))
Run Code Online (Sandbox Code Playgroud)

这是我的问题:最快的方法是什么?


我有三种方法来完成任务.

import numpy as np
x = np.random.random(1000)
y = np.random.random(1000)
Run Code Online (Sandbox Code Playgroud)

方法1:

x_sorted, y_sorted = zip(*sorted(zip(x,y))) #1.08 ms 
Run Code Online (Sandbox Code Playgroud)

方法2:

foo = zip(x,y)
foo.sort()
zip(*foo)       #1.05 ms
Run Code Online (Sandbox Code Playgroud)

方法3;

ind = range(1000)
ind.sort(key=lambda i:x[i])
x_sorted = [x[i] for i in ind]
y_sorted = [y[i] for i in ind]  #934us
Run Code Online (Sandbox Code Playgroud)

有没有比上述三种方法更快的执行方法?


其他问题.

  1. 为什么方法2不比方法1快,尽管它使用排序方法?
  2. 如果我单独执行方法2,它会更快.在IPython终端中, …

python sorting performance zip list

6
推荐指数
3
解决办法
1682
查看次数

Python:将 lambda 函数附加到列表中

任何人都可以做健全性检查吗?

我正在尝试在 for 循环中创建函数。我无法理解的一点总结在以下代码中:

f_list = []
for i in range(10):
    f = lambda j : i
    f_list.append(f)
Run Code Online (Sandbox Code Playgroud)

然后,

>>> f_list[0](0)
9                  #I hope this is 0.
>>> f_list[1](0)
9                  #I hope this is 1.
Run Code Online (Sandbox Code Playgroud)

为什么会这样??

python lambda append

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

PyLucene 索引器和检索器示例

我是 Lucene 的新手。我想用Python 3编写PyLucene 6.5的示例代码。我更改了版本的示例代码。但是,我找不到几个文档,并且不确定更改是否正确。

# indexer.py
import sys
import lucene

from java.io import File
from org.apache.lucene.analysis.standard import StandardAnalyzer
from org.apache.lucene.document import Document, Field, StringField, FieldType
from org.apache.lucene.index import IndexWriter, IndexWriterConfig
from org.apache.lucene.store import SimpleFSDirectory, FSDirectory
from org.apache.lucene.util import Version

if __name__ == "__main__":
    lucene.initVM()
    indexPath = File("index/").toPath()
    indexDir = FSDirectory.open(indexPath)
    writerConfig = IndexWriterConfig(StandardAnalyzer())
    writer = IndexWriter(indexDir, writerConfig)

    print("%d docs in index" % writer.numDocs())
    print("Reading lines from sys.stdin...")

    tft = FieldType()
    tft.setStored(True)
    tft.setTokenized(True)
    for n, l in enumerate(sys.stdin): …
Run Code Online (Sandbox Code Playgroud)

python lucene pylucene python-3.x

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