小编Vim*_*Vim的帖子

如何禁用PyCharm在启动时自动更新Python解释器

似乎PyCharm总是在启动时更新连接的Python解释器,并在需要时扫描和更新所有包.对我来说,这意味着每当我打开PyCharm时,都会有更新进程在后台运行,我有时需要等待一整分钟,我觉得很烦人.

所以问题是:是否有任何方法可以禁用这种自动更新机制?如果我可以只在我想要的时候手动更新Python解释器和包,那将是最好的.

python ide pycharm anaconda

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

为什么使用索引匹配列将 Series 连接到 DataFrame 不起作用?

我想将一个 Series 附加到 DataFrame 中,其中 Series 的索引使用 与 DataFrame 的列匹配pd.concat,但它给了我惊喜:

df = pd.DataFrame(columns=['a', 'b'])
sr = pd.Series(data=[1,2], index=['a', 'b'], name=1)
pd.concat([df, sr], axis=0)
Out[11]: 
     a    b    0
a  NaN  NaN  1.0
b  NaN  NaN  2.0
Run Code Online (Sandbox Code Playgroud)

我所期望的当然是:

df.append(sr)
Out[14]: 
   a  b
1  1  2
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,它pd.concat不知道索引列。那么,如果我想将一个Series作为新行连接到DF,那么我只能使用它吗df.append

python concatenation append dataframe pandas

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

熊猫检查时间序列的连续性

我有一个带有月度索引的 DataFrame。我想检查时间指数是否在每月频率上是连续的,如果可能的话,检查它变得不连续的地方,例如在其指数中相邻的两个月之间有某些“间隔月”。

示例:以下时间序列数据

1964-07-31    100.00
1964-08-31     98.81
1964-09-30    101.21
1964-11-30    101.42
1964-12-31    101.45
1965-03-31     91.49
1965-04-30     90.33
1965-05-31     85.23
1965-06-30     86.10
1965-08-31     84.26
Run Code Online (Sandbox Code Playgroud)

错过了 1964/10、1965/[1,2,7]。

python datetime pandas

7
推荐指数
2
解决办法
6140
查看次数

R wordcloud2 letterCloud 仅显示背景

我的 Rstudio 版本在 Win10 上是 3.4.1 64 位。我已经wordcloud2通过命令安装了软件包

install.packages('devtools')
devtools::install_github("lchiffon/wordcloud2")
Run Code Online (Sandbox Code Playgroud)

事情进展得很顺利。然后我尝试在 R 控制台上运行官方文档中的示例:

letterCloud(demoFreq, word='R')
Run Code Online (Sandbox Code Playgroud)

然后出现的只是背景颜色,没有别的。网络浏览器是 Chrome 59.0 64 位。但是,其他功能wordcloud运行良好。

我想这应该是一个普遍的问题,所以希望有人能给我一些帮助,谢谢。

r word-cloud

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

Matlab:从矩阵中删除行/列是否昂贵?

在MATLAB中将行/列附加到矩阵似乎需要考虑.例如,当我尝试将列附加到A具有许多行和多列的矩阵时,例如

A = [A, added_col]
Run Code Online (Sandbox Code Playgroud)

Matlab会警告我,由于这必须在内存中复制A,我最好使用预分配来提高速度.这是可以理解的,因为底层数据A占用了连续的内存块.

我的问题是,删除行/列会导致类似的问题吗?例如,要删除第二行A:

A(2,:) = []
Run Code Online (Sandbox Code Playgroud)

这个操作是否就地?我真的感到不确定,因为有一件事它似乎没有为内存中的数据创造任何新的空间,而另一方面,行将A被非连续地存储(因为第2行被删除).

那么内部会发生什么?这项操作是否足以在实践中使用?谢谢!


刚刚测试它的复杂性100000:

clc; clear;
N = 100000;
A = zeros(N, 3);

t1 = tic;
for ii = 1:N
    A(ii, :) = [1 2 3];
end
t2 = toc;
Run Code Online (Sandbox Code Playgroud)

clc; clear;
N = 100000;
A = zeros(N, 3);

t1 = tic;
for ii = (N-1):-1:2
    A(ii, :) = [];
end
t2 = toc;
Run Code Online (Sandbox Code Playgroud)

结果:第一个(修改预分配的矩阵)为0.009s,第二个为53.429(从矩阵中删除行).我认为这基本上解决了这个问题:不,从矩阵中删除行/列是无效的,因为它肯定涉及深度复制数据和重新分配内存.

此外,删除 …

memory performance matlab matrix

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

defaultdict可以接受取决于给定缺失密钥的callables吗?

在给出的例子的文档都似乎是情况下,在第一个调用的参数defaultdict是"常量"功能,如int,list或者lambda: const等我不知道,如果defaultdict只是应该采取恒定的功能作为其callabe的说法,但如果没有,我希望callable依赖于我给出的缺失键值.例如

toy = collections.defaultdict(lambda x: len(x), {'foo': 3})
toy['barr']
Run Code Online (Sandbox Code Playgroud)

我期望的是每当我给出一个缺少的键字符串时,例如'barr',容器可以创建一个新的条目,'barr'其中键是键,其长度4是值.但它不起作用.相反,它给我以下错误:

TypeError: <lambda>() missing 1 required positional argument: 'x'
Run Code Online (Sandbox Code Playgroud)

我希望'barr'lambda这里有这个论点,但显然不是这样.那可能出了什么问题?

python dictionary python-3.x defaultdict

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

测量Jupyter Notebook代码单元的运行时

似乎在Spyder(IPython3 Kernel)中,可以通过在代码单元顶部运行%%timeor %%timeit命令来轻松计时代码单元:

#%%
%%time # or %%timeit which measures average runtime from multiple runs
....

#%% (the previous cell ends and the next begins)
Run Code Online (Sandbox Code Playgroud)

运行上面的代码可以获得由这对代码定义的单元格的运行时间#%%.这就是Spyder中的工作方式,但在Jupyter Notebook环境中并不常用.

在Jupyter中,代码单元格不是由#%%分隔符定义的,而是通过单击菜单栏中的按钮来创建.而据我试过了,命令%%time%%timeit既能提高编译错误.似乎Jupyter无法识别它们,但它很奇怪,因为我的Jupyter实际上使用了与Spyder相同的IPython内核.在Jupyter中有效的一点是%time%timeit命令,但它们只能测量一行代码的运行时间,即必须像

%time blah blah
Run Code Online (Sandbox Code Playgroud)

事实证明,我甚至无法测量for由多条线组成的循环.所以这种方法对我来说并不合适.是否有任何方法可以使用%time(it)Jupyter中的magic命令等来评估单元运行时?

(PS:如果在Spyder中我%time在一个单元格的顶部附加一个命令,它会给出,Wall time: 0 ns因为在同一行中没有任何跟随它的东西,它实际上没有测量任何东西.)

python time ipython spyder jupyter-notebook

4
推荐指数
3
解决办法
2万
查看次数