小编lgd*_*lgd的帖子

从numpy/scipy中的小对数概率向量中抽取多项式

numpy/scipy中是否有一个函数可以让你从一个小的日志概率向量中采样多项式,而不会丢失精度?例:

# sample element randomly from these log probabilities
l = [-900, -1680]
Run Code Online (Sandbox Code Playgroud)

由于下溢,天真的方法失败了:

import scipy
import numpy as np
# this makes a all zeroes
a = np.exp(l) / scipy.misc.logsumexp(l)
r = np.random.multinomial(1, a)
Run Code Online (Sandbox Code Playgroud)

这是一次尝试:

def s(l):
    m = np.max(l)
    norm = m + np.log(np.sum(np.exp(l - m)))
    p = np.exp(l - norm)
    return np.where(np.random.multinomial(1, p) == 1)[0][0]
Run Code Online (Sandbox Code Playgroud)

这是最好/最快的方法,可以np.exp()在最后一步避免吗?

python precision numpy probability scipy

20
推荐指数
1
解决办法
1922
查看次数

Python中seaborn tsplot函数中的标准偏差和误差条

Seaborn如何计算其误差线?例:

import numpy as np; np.random.seed(22)
import seaborn as sns; sns.set(color_codes=True)
x = np.linspace(0, 15, 31)
data = np.sin(x) + np.random.rand(10, 31) + np.random.randn(10, 1)
ax = sns.tsplot(data=data, err_style="ci_bars")
plt.show()
Run Code Online (Sandbox Code Playgroud)

如何计算ci_bars(或ci_bands)?

是否可以tsplot在ci_bars样式中制作绘图,其中误差条或带对应于每个时间点的值的标准偏差?(而不是卑鄙的标准错误或bootstraps)

python matplotlib seaborn

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

在QTConsole中运行时,IPython不会重新加载代码

我跑ipython qtconsole.我想执行一个我在编辑器中单独编辑的文件.当我在编辑器中对文件进行更改并使用以下命令在IPython中重新运行它时:

%run myfile.py
Run Code Online (Sandbox Code Playgroud)

代码未更新.但是,如果我ipython从终端正常运行,那么这很好.我试着autoreload在QT控制台中使用:

%load_ext autoreload
%autoreload
Run Code Online (Sandbox Code Playgroud)

但它并没有解决问题.这有什么不对?

python qt ipython

15
推荐指数
1
解决办法
257
查看次数

在朱莉娅制作独立的二进制文件?

有没有办法制作包含所有julia依赖项的独立二进制文件,并且不要求用户安装julia?我认为可以使用Go语言.在像Python这样的其他语言中很难做到,我想知道Julia是否可以做到这一点,或者是否有计划这样做.

executable compilation julia

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

seaborn在次要情节中产生单独的数字

我正试图在seaborn中使用以下方法制作2x1子情节图:

data = pandas.DataFrame({"x": [1, 2, 4],
                        "y": [10,20,40],
                        "s": [0.01,0.1,1.0]})

plt.figure()
plt.subplot(2, 1, 1)
sns.pointplot(x="x", y="y", data=data)
plt.errorbar(np.arange(len(data["x"])), data["y"], yerr=data["s"])
plt.subplot(2, 1, 2)
sns.factorplot(x="x", y="y", data=data)
plt.show()
Run Code Online (Sandbox Code Playgroud)

它产生两个独立的数字,而不是一个带有两个子图的单个数字.为什么它会这样做?如何为多个单独的子图调用seaborn?

我试着查看下面引用的帖子,但我看不到即使factorplot首先调用也可以添加子图.有人能举例说明吗?这会有所帮助.我的尝试:

data = pandas.DataFrame({"x": [1, 2, 4],
                        "y": [10,20,40],
                        "s": [0.01,0.1,1.0]})

fig = plt.figure()
sns.pointplot(x="x", y="y", data=data)
ax = sns.factorplot(x="x", y="y", data=data)
fig.add_subplot(212, axes=ax)
plt.errorbar(np.arange(len(data["x"])), data["y"], yerr=data["s"])
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib seaborn

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

如何在pandas中的数据帧中绘制直方图

我在pandas中有一个简单的数据框,它有两个数字列.我想通过pandas使用matplotlib从列中制作直方图.以下示例不起作用:

In [6]: pandas.__version__
Out[6]: '0.14.1'

In [7]: df
Out[7]: 
   a   b
0  1  20
1  2  40
2  3  30
3  4  30
4  4   3
5  3   5

In [8]: df.plot(kind="hist")
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-8-4f53176a4683> in <module>()
----> 1 df.plot(kind="hist")

/software/lib/python2.7/site-packages/pandas/tools/plotting.pyc in plot_frame(frame, x, y, subplots, sharex, sharey, use_index, figsize, grid, legend, rot, ax, style, title, xlim, ylim, logx, logy, xticks, yticks, kind, sort_columns, fontsize, secondary_y, **kwds)
   2095         klass = _plot_klass[kind]
   2096     else:
-> …
Run Code Online (Sandbox Code Playgroud)

python matplotlib pandas

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

用于制表符分隔文本文件的emacs的电子表格模式

在emacs中查看和编辑制表符分隔文本文件的正确方法是什么,就好像它们是电子表格一样?

如果我通过使用在emacs中编写tsv文件C-q TAB,它有令人讨厌的怪癖,标签不是等间隔的.能够编辑单元格并让emacs自动重新排列以便它出现在列中,这类似于表格模式,这将是一件好事.但是,我不想创建一个表,我只想编辑一个tsv文件.我不知道如何做到这一点org-mode.这有内置模式吗?

例如,使用org-mode,我可以使选项卡显示为等间隔,但当其中一个单元格中有更多文本时,emacs不会自动重新排列列.这样做的正确方法是什么?

csv emacs spreadsheet

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

如何从python中的rpy2中的R数据框中选择列?

我在python中的rpy2中有一个数据帧,我想从中提取列.这个R代码的rpy2等价物是多少?

df[,c("colA", "colC")]

这可以获得第一列:

mydf.rx(1)

但是我如何拉出一组列,例如第1列,第3列和第5列?

mydf.rx([1,3,5])

不起作用.也不是:

mydf.rx(rpy2.robjects.r.c([1,3,5]))

python r dataframe rpy2

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

如何使用 hmmlearn 在 Python 中运行隐藏的马尔可夫模型?

我尝试使用来自 GitHub 的 hmmlearn来运行二进制隐藏马尔可夫模型。这不起作用:

import hmmlearn.hmm as hmm
transmat = np.array([[0.7, 0.3],
                      [0.3, 0.7]])
emitmat = np.array([[0.9, 0.1],
                    [0.2, 0.8]])
obs = np.array([0, 0, 1, 0, 0])
startprob = np.array([0.5, 0.5])
h = hmm.MultinomialHMM(n_components=2, startprob=startprob,
                       transmat=transmat)
h.emissionprob_ = emitmat
# fails
h.fit([0, 0, 1, 0, 0])
# fails
h.decode([0, 0, 1, 0, 0])
print h
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ValueError:无法连接零维数组

使用此模块的正确方法是什么?注意我使用的是与 sklearn 分离的 hmmlearn 版本,因为显然 sklearn 不再维护 hmmlearn。

python machine-learning time-series hidden-markov-models hmmlearn

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

如何在Python Seaborn中更改调色板中标签的颜色分配?

如何更改seaborn使用的颜色顺序?例子:

import seaborn as sns
import pandas
data = pandas.DataFrame({"x": [1,2,3], "y": [1,1,1], "color": ["a", "b", "c"]})
sns.pointplot(x="x", y="y", hue="color", data=data)
Run Code Online (Sandbox Code Playgroud)

如何更改“色调”中默认调色板的颜色分配?例如,不是从调色板中选择(蓝色,绿色,红色),而是使用(绿色,蓝色,红色)?我想保持相同的调色板,只是改变颜色的顺序。

python matplotlib seaborn

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

显示ggplot2正在使用的颜色的十六进制代码

如何查看ggplot2使用给定调色板的离散类别使用的颜色,如啤酒机的“ Set1”或“ Set2”?即对于给定的类别集,将使用什么颜色?

r ggplot2 colorbrewer

3
推荐指数
1
解决办法
960
查看次数

在 matplotlib/seaborn 中设置子图的边距

我正在使用以下命令在 matplotlib/seaborn 中绘制子图:

plt.figure()
s1 = plt.subplot(2, 1, 1)
# plot 1 
# call seaborn here
s2 = plt.subplot(2, 1, 2)
# plot 2
plt.tight_layout()
plt.show()
Run Code Online (Sandbox Code Playgroud)

我遇到了标记被轴隐藏的常见问题(当绘图靠近图形边缘时添加边距)。当我尝试调整边距时,它不起作用:

s1 = plt.subplot(2, 1, 1)
s1.margins(0.05)
Run Code Online (Sandbox Code Playgroud)

它没有给出错误,但也没有设置边距。

这是一个完整的例子:

gammas = sns.load_dataset("gammas")
s = plt.subplot(1, 1, 1)
# this does not change the x margins
s.get_axes().margins(x=0.05, y=0.01)
ax = sns.tsplot(time="timepoint", value="BOLD signal",
                unit="subject", condition="ROI",
                err_style="ci_bars",
                interpolate=False,
                data=gammas)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在上面,我试图使 x 边距更大,但 的x参数margins()似乎没有效果。如何才能做到这一点?

python matplotlib seaborn

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