小编The*_*CAL的帖子

为什么从模块导入函数比整个模块本身需要更长的时间?

考虑:

>>> timeit.timeit('from win32com.client import Dispatch', number=100000)
0.18883283882571789
>>> timeit.timeit('import win32com.client', number=100000)
0.1275979248277963
Run Code Online (Sandbox Code Playgroud)

仅导入Dispatch函数而不是整个模块需要更长的时间,这似乎是反直觉的.有人可以解释为什么单一功能的开销是如此糟糕?谢谢!

python performance python-import python-internals

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

无法保存matplotlib.figure图中,canvas为None

考虑(假设代码运行没有错误):

import matplotlib.figure as matfig

    ind = numpy.arange(N)
    width = 0.50;
    fig = matfig.Figure(figsize=(16.8, 8.0))
    fig.subplots_adjust(left=0.06, right = 0.87)
    ax1 = fig.add_subplot(111)
    prev_val = None
    fig.add_axes(ylabel = 'Percentage(%)',xlabel='Wafers',title=title,xticks=(ind+width/2.0,source_data_frame['WF_ID']))
    fig.add_axes(ylim=(70,100))

    for key,value in bar_data.items():
        ax1.bar(ind,value, width,color='#40699C', bottom=prev_val)
        if prev_val:
            prev_val = [a+b for (a,b) in zip(prev_val,value)]
        else:
            prev_val=value

    names= []
    for i in range(0,len(col_data.columns)):
        names.append(col_data.columns[i])
    ax1.legend(names,bbox_to_anchor=(1.15, 1.02))
Run Code Online (Sandbox Code Playgroud)

我现在想保存我的身材fig.savefig(outputPath, dpi=300),但是我知道AttributeError: 'NoneType' object has no attribute 'print_figure',因为fig.canvas是无.子图应该在图形画布上,因此它不应该是None.我想我错过了一个关于matplot数字画布的关键概念.我如何更新fig.canvas以反映当前的图,所以我可以使用fig.savefig(outputPath, dpi=300)?谢谢!

python matplotlib

11
推荐指数
1
解决办法
9207
查看次数

Twitter Bootstrap Carousel跳过问题

在网站上我正在处理旋转木马似乎跳到第三个图像,当你加载页面时第一次点击下一个按钮.有没有人对这是为什么有任何想法?我正在遵循bootstrap文档中的建议布局.

javascript carousel twitter-bootstrap

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

Tkinter/Matplotlib后端冲突导致无限主循环

考虑运行以下代码(注意它是一个非常简化的版本来演示问题):

import matplotlib.pyplot as plot
from tkinter import * #Tkinter if your on python 2

def main():

    fig = plot.figure(figsize=(16.8, 8.0))

    root = Tk()
    w = Label(root, text="Close this and it will hang!")
    w.pack()
    root.mainloop()

    print('Code never reaches this point')

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

关闭第一个窗口将正常工作,但关闭第二个窗口会导致代码挂起,因为root.mainloop()会导致无限循环.此问题是由调用引起的fig = plot.figure(figsize=(16.8, 8.0)).在做出matplotlib.pyplot调用之后,有没有人知道如何让root成功关闭?

python tkinter matplotlib

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

将pandas DataFrame旋转90度

基本上我想将pandas DataFrame旋转90度(顺时针),如果是的话

df:
    A B C D
  0 5 3 6 7
  1 6 3 5 2
Run Code Online (Sandbox Code Playgroud)

它会变成

df:
   6 5 A
   3 3 B
   5 6 C
   2 7 D
Run Code Online (Sandbox Code Playgroud)

有没有办法用枢轴或其他方式做到这一点?谢谢!

python pandas

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

Pandas DataFrame使用其他DataFrame更新列值

考虑以下DataFrame X:

Col A Col B 
1     2
3     4
5     6
Run Code Online (Sandbox Code Playgroud)

和DataFrame Y:

Col A Col B 
3     7
8     9
Run Code Online (Sandbox Code Playgroud)

在pandas中是否存在内置函数,它将组合两个数据帧,使用Col A作为键并更新Col B中的值(如果存在),否则追加.这样在X和Y上输出这个函数就是

Col A Col B
1     2
3     7
5     6
8     9
Run Code Online (Sandbox Code Playgroud)

我已经研究了合并和更新并附加但它们似乎没有按照我想要的方式运行,通过索引而不是Col A值更新更新,合并不会覆盖,等等.谢谢!

pandas

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

如何删除Ammap地图控件叠加层?

如何在显示AmMap时删除用于平移和缩放的控件?在创建地图对象时是否有可以更改的字段,还是必须手动更改库代码?

javascript ammap

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

如何预置pandas数据帧

如何将数据帧添加到另一个数据帧?考虑数据帧A:

b c d
2 3 4
6 7 8
Run Code Online (Sandbox Code Playgroud)

和dataFrame B:

a
1
5
Run Code Online (Sandbox Code Playgroud)

我想在A之前添加A来获得:

a b c d
1 2 3 4
5 6 7 8
Run Code Online (Sandbox Code Playgroud)

pandas

5
推荐指数
2
解决办法
5669
查看次数

win32com MemoryError:CreatingSafeArray试图将数据插入excel

我试图通过以下调用将一个列表列表插入到excel中(这样每个内部列表代表一行,每个列表具有相同的长度):

#Assume ws is correctly initialized to an excel worksheet object
ws.Range(ws.Cells(1,1),ws.Cells(len(myList),len(myList[0]))).value = myList
Run Code Online (Sandbox Code Playgroud)

myList列表包含字符串和numpy浮点数和整数.当我尝试执行上面的调用时出现以下错误:

Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
  File "C:\Python32\lib\site-packages\win32com\client\dynamic.py", line 570, in __setattr__
    self._oleobj_.Invoke(entry.dispid, 0, invoke_type, 0, value)
MemoryError: CreatingSafeArray
Run Code Online (Sandbox Code Playgroud)

导致这个win32com.client的原因是什么MemoryError?谢谢!

python numpy pywin32 comtypes win32com

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

Python并行执行-threading.Lock无法按预期工作

我目前有一个global Lock = threading.Lock(),并进行以下呼叫:

Parallel(n_jobs=2)(delayed(serialRemove)(dir,c,b,l,f) for f in os.listdir(dir))
Run Code Online (Sandbox Code Playgroud)

使用jobLib。在serialRemove,我有

Lock.acquire()
print(f+' begin')
if h in hashes:
    try:
        os.remove(path)
        if l: print('Removing ' + path)
        removed += 1
    except os.error:
        print('Encountered error removing file') 
else:
    hashes.add(h)
print(f+' end')
Lock.release()
Run Code Online (Sandbox Code Playgroud)

通话的部分结果是:
10.txt开始
11.txt开始
20.txt开始
我不明白如果我将代码放在Lock中,怎么会有两个开始打印。有什么简单的方法可以保护代码块,所以理想情况下我得到:
10.txt开始
10.txt结束
11.txt开始
11.txt结束
20.txt开始
20.txt结束

python parallel-processing locking

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