小编Foo*_*Bar的帖子

R不更新data.table

这是我目前的版本data.table:

      Package                                                        LibPath Version Priority       Depends
1: data.table /Library/Frameworks/R.framework/Versions/3.1/Resources/library   1.9.2       NA R (>= 2.14.0)
             Imports LinkingTo
1: methods, reshape2        NA
                                                                                            Suggests Enhances    License
1: chron, ggplot2 (>= 0.9.0), plyr, reshape, testthat (>= 0.4),\nhexbin, fastmatch, nlme, xts, bit64       NA GPL (>= 2)
   License_is_FOSS License_restricts_use OS_type MD5sum NeedsCompilation Built Status
1:              NA                    NA      NA     NA              yes 3.1.0     ok
Run Code Online (Sandbox Code Playgroud)

正如你所看到的1.9.2,尽管http://cran.us.r-project.org列为1.9.4最新版本.我尝试了以下更新它,但效果不大:

update.packages()
update.packages(repos='http://cran.us.r-project.org')
update.packages(old.packages='data.table', repos='http://cran.us.r-project.org')
Run Code Online (Sandbox Code Playgroud)

sessionInfo() 仍然给了我

other attached packages:
[1] foreign_0.8-61   data.table_1.9.2 ggplot2_1.0.0  
Run Code Online (Sandbox Code Playgroud)

我在Mac OS …

r data.table

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

Numpy:影响1.10之前矩阵的对角线元素

我想改变2d矩阵的对角元素.这些都是主要和非主要对角线.

numpy.diagonal() 在NumPy 1.10中,它将返回一个读/写视图,写入返回的数组将改变您的原始数组.

numpy.fill_diagonal(),numpy.diag_indices() 仅适用于主对角元素

这是我的用例:我想重新创建以下形式的矩阵,使用对角表示法非常简单,因为我将x,y,z作为数组.

矩阵

python numpy matrix diagonal

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

月中的天数

我有一个带有日期时间索引的数据框,我想将某些列乘以该月的天数。

                   TUFNWGTP  TELFS  t070101  t070102  t070103  t070104  
TUDIARYDATE                                                              
2003-01-03   8155462.672158      2        0        0        0        0   
2003-01-04   1735322.527819      1        0        0        0        0   
2003-01-04   3830527.482672      2       60        0        0        0   
2003-01-02   6622022.995205      4        0        0        0        0   
2003-01-09   3068387.344956      1        0        0        0        0 
Run Code Online (Sandbox Code Playgroud)

在这里,我想乘以t31 开始的所有列。也就是说,预期输出为

                   TUFNWGTP  TELFS  t070101  t070102  t070103  t070104  
TUDIARYDATE                                                              
2003-01-03   8155462.672158      2        0        0        0        0   
2003-01-04   1735322.527819      1        0        0        0        0   
2003-01-04   3830527.482672      2     1680        0        0        0   
2003-01-02   6622022.995205      4        0        0 …
Run Code Online (Sandbox Code Playgroud)

python pandas

5
推荐指数
3
解决办法
4294
查看次数

Matplotlib 和 Latex 投影仪:正确的尺寸

关于matplotlib/Python和latex的集成问了几个问题,但是我找不到以下内容:

当我savefig()在乳胶中包含创建的 pdf 文件时,我总是

includegraphics[scale=0.5]{myFile.pdf}
Run Code Online (Sandbox Code Playgroud)

并且比例通常在0.4或左右0.5。鉴于我正在创建 A5 投影仪幻灯片,生成正确大小的 pdf 文件的正确方法是什么,这样我就不需要在乳胶中指定它?

请注意,这些不是全尺寸的仅图像投影仪幻灯片,它需要稍微小一些以允许页眉、页脚和标题。

python latex matplotlib

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

R:创建(长)傻瓜列表时发出警告

列的虚拟列c和给定值x等于1if c==x和0 else.通常,通过为列创建虚拟对象c,可以x在选择时排除一个值,因为最后一个虚拟列不会添加任何已存在的虚拟列的信息.

这是我如何尝试为列创建一个很长的虚拟列表firm,在data.table:

values <- unique(myDataTable$firm)
cols <- paste('d',as.character(inds[-1]), sep='_') # gives us nice d_value names for columns
# the [-1]: I arbitrarily do not create a dummy for the first unique value
myDataTable[, (cols):=lapply(values[-1],function(x)firm==x)]
Run Code Online (Sandbox Code Playgroud)

此代码可靠地用于以前的列,这些列具有较小的唯一值.firm但是更大:

tr(values)
 num [1:3082] 51560090 51570615 51603870 51604677 51606085 ...
Run Code Online (Sandbox Code Playgroud)

我在尝试添加列时收到警告:

Warning message:
  truelength (6198) is greater than 1000 items over-allocated (length = 36). See ?truelength. If …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

Python 和 scipy 中的 Meijer G 函数

我需要 scipy 中的 Meijer G 函数。我在网上读到,由于Meier G函数的通用性,scipy中不支持作为特殊函数,但每个人都应该根据自己的个人用例编写一些东西。

\n\n

我的问题是我没有任何复杂集成的经验。由于 LaTeX 在这里被禁止,这就是我试图用数值方法解决的问题:

\n\n

在此输入图像描述

\n\n

(第一行是一般情况,第二行是我正在尝试计算的情况),给定 p(a), k, k2

\n\n

正如维基百科所述,可以通过三种方式获取L

\n\n
    \n
  • L 从 \xe2\x88\x92i\xe2\x88\x9e 到 +i\xe2\x88\x9e 使得 \xce\x93(bj \xe2\x88\x92 s), j = 1, 2, 的所有极点, ..., m, 位于路径的右侧,而 \xce\x93(1 \xe2\x88\x92 ak + s), k = 1, 2, ..., n, 的所有极点位于路径的右侧左边。
  • \n
  • L 是一个从 +\xe2\x88\x9e 开始和结束的循环,包围 \xce\x93(bj \xe2\x88\x92 s) 的所有极点,j = 1, 2, ..., m,恰好一次负方向,但不环绕 \xce\x93(1 \xe2\x88\x92 ak + s), k = 1, 2, ..., n 的任何极点。 …

python numpy scipy complex-numbers

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

是不是"同情"比Mathematica慢得多?

我正在使用Mathematica结果再现Sympy,而且我是后者的新手,所以我可能做错了.然而,我注意到一些使用Mathematica花了一分钟时间的东西只是花了很长时间(阅读:我在一小时前开始它之后没有完成)同情.这既适用于Simplify(),也适用于solve().我做错了什么,或者情况确实如此?

我会附上我的solve()案子:

import sympy as sp
from sympy import init_printing
init_printing()

p, r, c, p, y, Lambda = sp.symbols('p r c p y Lambda')

F = sp.Symbol('F')
eta1 = lambda p: 1/(1-sp.exp(-Lambda) * sp.exp(-Lambda)*(sp.exp(Lambda) - 1 - Lambda))
eta2 = lambda p: 1/(1-sp.exp(-Lambda)) * sp.exp(-Lambda)/(1-F) * (sp.exp(Lambda*(1- F)) - 1 - Lambda*(1-F))

eta = lambda p: 1 - eta1(p) + eta2(p)
etaOfR = sp.limit(eta(p), F,  1)

S = lambda p: eta(p)*y/p*(p-c)
SOfR …
Run Code Online (Sandbox Code Playgroud)

python wolfram-mathematica sympy

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

熊猫:无法查询

当我尝试查询数据框对象时,会发生以下情况:

df2.query('a==1')

.conda/envs/myenv2/lib/python2.7/site-packages/pandas/computation/align.pyc in _align_core(terms)
     96                 reindexer_size = len(reindexer)
     97 
---> 98                 ordm = np.log10(abs(reindexer_size - term_axis_size))
     99                 if ordm >= 1 and reindexer_size >= 10000:
    100                     warnings.warn('Alignment difference on axis {0} is larger '

FloatingPointError: divide by zero encountered in log10
Run Code Online (Sandbox Code Playgroud)

这是我的数据框的外观:

In [16]: df2.head()
Out[16]: 
                     S         t        S         t    S-elas     t-elas
y                  0.9       0.9      1.0       1.0                     
T a   k   c                                                             
1 0.1 0.2 0.4      NaN       NaN  49.9547  0.935831       NaN        NaN
          0.5  48.4641   0.91747  51.6021  0.893594 -0.595826   0.250475
      0.3 …
Run Code Online (Sandbox Code Playgroud)

python pandas

5
推荐指数
0
解决办法
237
查看次数

熊猫:Idxmax,最好的结果

我正在进行主成分分析,并得到以下类型的组件结果:

In [140]: components.head()
Out[140]: 
        V52      V134      V195      V205       V82      V189       V10  \
0  0.070309  0.043759 -0.102138  0.442536 -0.010881  0.041344 -0.001451   
1  0.004664  0.313388 -0.140883  0.015051  0.023085  0.055634  0.065873   
2  0.028201 -0.116513 -0.135300 -0.092226 -0.009306  0.065079 -0.030595   
3  0.018049 -0.136013  0.073010 -0.076940  0.013245 -0.010582  0.065641   

        V47      V177      V184    ...         V208        V5      V133  \
0  0.066203  0.016056  0.105487    ...    -0.144894 -0.009810  0.117964   
1 -0.009324  0.008935 -0.044760    ...    -0.014553 -0.014208  0.200632   
2  0.013799  0.169503 -0.010660    ...    -0.079821 -0.053905  0.080867   
3 -0.023983  0.111241 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

使用多个参数并行化 groupby

我在并行化 groupby 上发现了这个问题。但是,它不能一对一地转换为有多个参数的情况 - 除非我弄错了。

以下是正确的做法吗?有没有更好的办法?(尤其是获取索引似乎效率很低)。

def applyParallel(dfGrouped, func, *args):
    with Pool(cpu_count() - 2) as p:
        ret_list = p.starmap(func, zip([group for name, group in dfGrouped], repeat(*args)))

    index = [name for name, group in dfGrouped]
    return pd.Series(index=index, data=ret_list)
Run Code Online (Sandbox Code Playgroud)

哪一个会调用 using applyParallel(df.groupby(foo), someFunc, someArgs).

python pandas

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