我写了我的第一个网络刮刀,这(令人惊讶)完成了这项工作。我正在为图片抓取一个流行的 (它们的900上有),但问题是刮板太慢了。
例如,如果我下载了一个10漫画示例,那么每个图像平均需要一个4到5 secs (该示例总共需要> 40 secs ),如果您问我,这有点太慢了,因为每个图像都差不多。80KB到800KB的大小。
我已经读过,我可以切换到lxml来异步地进行抓取,但是这个包与Python3.6不兼容。
我试过这个:
pip3 install lxml
只是为了得到这个:
Could not find a version that satisfies the requirement
我正在使用spacy专门获取所有amod (形容词修饰符)在许多文件(大约12千兆压缩文件)。我试着让它在一个只有2.8MB的文件夹上工作,处理它花了4分钟!
到目前为止,这是我的代码:
with open("descriptions.txt", "w") as outf:
canParse = False
toParse = ""
for file in getNextFile():
# Open zip file and get text out of it
with zipfile.Z
下面是我当前的代码:
import pandas as pd
import math
import csv
fund = 10000
print("investment",fund)
pval = 0
oldportfolio = []
dts = ["06 Feb 2017", "07 Feb 2017", "08 Feb 2017", "09 Feb 2017", "10 Feb 2017", "13 Feb 2017", "14 Feb 2017",
我用两种方法来创建一个长度为N的元组。
这是非常快:
def createTuple():
for _ in range(100000):
tuplex = (0,) * 1000
CPU times: user 439 ms, sys: 1.01 ms, total: 440 ms
Wall time: 442 ms
这是非常快的,但是不能用Numba编译:
Invalid use of Function(<built-in function mul>) with argument(s) of type(s): (UniTuple(Literal[in
for i in range(N):
for j in range(M):
l2 = numpy.argmin(numpy.abs(s - dE[i,j]))
A[l1,l2] = A[l1,l2] + (n[j]+1)*I[i,j]
基本上,它所做的是在s数组中定位dE[i,j]的值,并将相应的值(n[j]+1)*I[i,j]添加到该位置。有什么方法可以避免for循环吗?
对于我目前的工作,我正在编写一些长时间运行(考虑几个小时到几天)的脚本,这些脚本执行CPU密集型数据处理。程序流非常简单-它进入主循环,完成主循环,保存输出并终止:我的程序的基本结构往往如下所示:
<import statements>
<constant declarations>
<misc function declarations>
def main():
for blah in blahs():
<lots of local variables>
<lots of tightly coupled