小编Dem*_*nos的帖子

我可以为重置索引分配名称吗?

通常,当数据帧经历reset_index()新列时,会为其分配名称indexlevel_i根据级别.

是否可以为新列指定名称?

python pandas

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

如何在热图中保持单元格方形?

当 cbar 开启时,seaborn 热图中的单元格是矩形的。我可以改变我的轴的 figsize,但我想知道是否有更简单的方法来保持单元格的正方形。

python seaborn

10
推荐指数
2
解决办法
3750
查看次数

如何将功能应用于自身?

假设我有函数,f它接受一些变量并返回相同类型的变量.为简单起见,我们说

def f(x):
    return x/2+1
Run Code Online (Sandbox Code Playgroud)

我有兴趣f一遍又一遍地申请自己.有点像f(f(f(...(f(x))...))).

我可以这样做

s = f(x)
for i in range(100):
    s = f(s)
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有一种更简单,更简洁的方式来做同样的事情.我不想避免for循环(就像对自己的挑战).是否有某种使用方法map或类似功能来实现这一目标?

python

8
推荐指数
2
解决办法
206
查看次数

如何使用subplot2grid增加子图之间的间距?

subplot2grid用来制作如下的子图:

在此输入图像描述

为了使刻度足够大以便发布,我需要增加轴之间的垂直和水平间距.

通常,我会使用类似的东西subplot_adjust(hspace = 0.5),但这似乎不适用subplot2grid.

有人可以推荐一个解决方案吗?

这是我用来绘制事物和创建轴的代码:

import matplotlib.pyplot as plt

ax1  = plt.subplot2grid((2,2),(0,0), colspan = 2)
ax2  = plt.subplot2grid((2,2),(1,0), colspan = 1)
ax3  = plt.subplot2grid((2,2),(1,1), colspan = 1)

df.plot( ax = ax1)
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

我可以告诉 python 将现有图形放入新图形中吗?

创建某个图需要大量工作,因此我想通过创建一个f()返回图形的函数来自动执行此操作。

我想调用这个函数,以便我可以把结果放在一个子图中。无论如何我可以做到这一点吗?下面是一些解释我的意思的伪代码

figure_of_interest = f()

fig,ax = plt.subplots(nrows = 4,cols = 1)

ax[1].replace_with(figure_of_interest)
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

sklearn是否有组套索?

我有兴趣使用套索解决我遇到的问题。 是该算法的链接。我知道R有一个很好的实现,但是很好奇python是否有类似的东西。

我认为sklearn.linear_model.MultiTaskLasso可能有点相似,但不确定。谁能对此有所启发?

python scikit-learn

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

如何在 GridSearchCV 中使用 TransformedTargetRegressor?

我正在尝试TransformedTargetRegressor在模型管道中使用并在其GridSearchCV上运行。

这是一个最小的工作示例:

from sklearn.datasets import make_regression
from sklearn.ensemble import RandomForestRegressor
from sklearn.pipeline import Pipeline
from sklearn.model_selection import GridSearchCV
from sklearn.compose import TransformedTargetRegressor


X,y = make_regression()

model_pipe = Pipeline([
    ('model', TransformedTargetRegressor(RandomForestRegressor()))
])

params={'model__n_estimators': [1, 10, 50]}


model = GridSearchCV(model_pipe, param_grid= params)

model.fit(X,y)
Run Code Online (Sandbox Code Playgroud)

此模型导致以下错误:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-48-828bdf0e7ede> in <module>
     17 model = GridSearchCV(model_pipe, param_grid= params)
     18 
---> 19 model.fit(X,y)

~/miniconda3/envs/gymbo/lib/python3.6/site-packages/sklearn/model_selection/_search.py in fit(self, X, y, groups, **fit_params)
    686                 return results
    687 
--> 688             self._run_search(evaluate_candidates) …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn

6
推荐指数
2
解决办法
1823
查看次数

概率与机器学习

我正在使用 python 进行一些机器学习。

我有一个包含 2000 个条目的 python nd 数组。每个条目都包含有关某些主题的信息,最后有一个布尔值来告诉我他们是否是吸血鬼。

数组中的每个条目如下所示:

[height(cm), weight(kg), stake aversion, garlic aversion, reflectance, shiny, IS_VAMPIRE?]
Run Code Online (Sandbox Code Playgroud)

我的目标是根据上面显示的对象数据,能够给出新对象是吸血鬼的概率。

我使用 sklearn 为我做了一些机器学习:

clf = tree.DecisionTreeRegressor()

clf=clf.fit(X,Y)


print clf.predict(W)
Run Code Online (Sandbox Code Playgroud)

其中 W 是新主题的数据数组。我编写的脚本返回布尔值,但我希望它返回概率。我该如何修改它?

python machine-learning

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

如何从数据框中平均采样?

假设我有一些观察,每个观察都有从1到的指示类n。这些类别中的每一个不一定在数据集中均等出现。

我如何从数据框中同样采样?现在我做类似...

frames = []
classes = df.classes.unique()

for i in classes:
    g = df[df.classes = i].sample(sample_size)
    frames.append(g)

equally_sampled = pd.concat(frames)
Run Code Online (Sandbox Code Playgroud)

是否有熊猫函数可以同样采样?

python pandas

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

我如何优先考虑从 geom_histogram 获得的 y 比例?

我想在直方图上绘制一条垂直线,其中分面后数据的中位数。我想这样做stat_summary,如下所示。这种方法的问题是 y 轴的比例不正确

我想这是因为我打电话给ggplot(aes(x=data, y=data)). 对直方图做似乎有点奇怪,但我这样做的原因是因为stat_summary需要任何审美。有没有办法可以绘制中位数,stat_summary但保持我打电话时的比例geom_histogram?我可以添加 aylim但这种方法的问题是我可能不知道我可能会看到的新数据的正确上限是什么先验。

下面是生成我的示例的 reprex。

library(tidyverse)
#> Warning: package 'tibble' was built under R version 3.6.2

d = tribble(
  ~groupvar, ~data,
  'a', rlnorm(10,2, 0.5),
  'b', rlnorm(10,2, 0.5),
  'c', rlnorm(10,5, 0.5)
) %>% unnest(c(data))



d %>% 
  ggplot(aes(x = data, y = data, group = groupvar))+
  geom_histogram(aes(y = ..count..))+
  facet_grid(~groupvar)+
  stat_summary(aes(x=0, xintercept=stat(y)), fun = median, geom = 'vline')
#> `stat_bin()` using `bins = 30`. Pick better …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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