小编Jar*_*rad的帖子

点上的iPython代码完成/智能感知可能吗?

当有人试图学习Python的细节(强调科学计算 - 即:熊猫,numpy,scikit-learn)时,大多数大师似乎都在推荐和使用iPython笔记本.作为初学者/中级编码器,我最大的难点在于我需要从IDE中获取代码完成/智能感知功能来学习函数参数.我还没有简单地知道当前开发中可用的参数.

在iPython中,我注意到我可以按下Tab以显示选项的下拉菜单(见下面的pd.)但我不想每次都打.这对我的需求来说不是用户友好的.相反,当我按下dot时,我希望它只显示可用的类和方法.

其次,我注意到如果我说的话pd.read_csv(<TAB>,我会得到比实际参数更多的选项read_csv.

问题:按下点/句点后,iPython可以立即自动显示准确的代码完成选项吗?另外,有没有办法将其配置为仅在函数内显示可用的函数参数?

为了使这个问题超级具体,我不是要求使用任何其他IDE; 我只是非常具体地询问iPython,并想知道是否有办法设置某种配置,以便在按下"点"(没有时间延迟)时立即获得准确的"点"显示选项.

在此输入图像描述

下面的例子显示Desktop哪个显然不是参数pd.read_csv().

在此输入图像描述

python ipython

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

Sklearn如何使用Joblib或Pickle保存从管道和GridSearchCV创建的模型?

使用确定最佳参数后pipelineGridSearchCV,我怎么pickle/ joblib后来这个过程中重新使用?当它是单个分类器时,我看到如何做到这一点......

from sklearn.externals import joblib
joblib.dump(clf, 'filename.pkl') 
Run Code Online (Sandbox Code Playgroud)

但是,如何pipeline在执行和完成后用最佳参数保存整体gridsearch

我试过了:

  • joblib.dump(grid, 'output.pkl') - 但是转储了每次网格搜索尝试(许多文件)
  • joblib.dump(pipeline, 'output.pkl') - 但我不认为它包含最好的参数

X_train = df['Keyword']
y_train = df['Ad Group']

pipeline = Pipeline([
  ('tfidf', TfidfVectorizer()),
  ('sgd', SGDClassifier())
  ])

parameters = {'tfidf__ngram_range': [(1, 1), (1, 2)],
              'tfidf__use_idf': (True, False),
              'tfidf__max_df': [0.25, 0.5, 0.75, 1.0],
              'tfidf__max_features': [10, 50, 100, 250, 500, 1000, None],
              'tfidf__stop_words': ('english', None),
              'tfidf__smooth_idf': (True, False),
              'tfidf__norm': ('l1', 'l2', None),
              }

grid = …
Run Code Online (Sandbox Code Playgroud)

python pipeline scikit-learn grid-search

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

Django static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 实际上做什么?

我正在使用 Django 2.2。来自 Django管理静态文件 文档

如果您按上述说明使用 django.contrib.staticfiles,则当 DEBUG 设置为 True 时,runserver 将自动执行此操作。如果您在 INSTALLED_APPS 中没有 django.contrib.staticfiles,您仍然可以使用 django.views.static.serve() 视图手动提供静态文件。

这不适合生产使用!有关一些常见的部署策略,请参阅部署静态文件。

例如,如果您的 STATIC_URL 定义为 /static/,您可以通过将以下代码段添加到您的 urls.py 来实现:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Run Code Online (Sandbox Code Playgroud)

笔记

此辅助函数仅在调试模式下工作,并且仅当给定前缀是本地前缀(例如 /static/)而不是 URL(例如 http://static.example.com/)时。

此外,此辅助函数仅服务于实际的 STATIC_ROOT 文件夹;它不会像 django.contrib.staticfiles 那样执行静态文件发现。

我的解释

  1. static是一个辅助函数,用于STATIC_ROOT 在开发过程中提供文件(这是真的吗?)
  2. 静态仅适用于debug = True
  3. static仅适用于本地前缀,如STATIC_URL = '/static/'
  4. DEBUG …

python django django-settings

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

定义用于 AWS Elastic Beanstalk 部署的特定 docker-compose 文件

在运行eb createcommand之前,如何告诉 Elastic Beanstalk 使用不同的docker-compose文件?

\n

比如我的项目目录:

\n
HelloWorldDocker\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80.elasticbeanstalk\n\xe2\x94\x82  \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80config.yml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80app/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80proxy/\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80docker-compose.prod.yml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80docker-compose.yml\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. Mydocker-compose.yml是我用于本地开发的
  2. \n
  3. Mydocker-compose.prod.yml是我想用于生产的
  4. \n
\n

eb create有没有办法在从 EB CLI运行命令之前定义此配置?

\n

说明显而易见的是:我意识到我可以用于docker-compose.yml我的生产文件和docker-compose.dev.yml我的本地开发,但随后在docker-compose up本地运行命令变得更加乏味(即docker-compose -f docker-compose.dev.yml up --build...:)。此外,我主要感兴趣的是这是否可能,因为我正在学习 Elastic Beanstalk,以及如果我愿意的话我可以如何做到。

\n
\n

编辑/更新:2021 年 6 月 11 日

\n

我试图用docker-compose.prod.yml这个重命名docker-compose.yml.ebextensions/docker-settings.config

\n
container_commands:\n  rename_docker_compose:\n    command: mv docker-compose.prod.yml docker-compose.yml\n
Run Code Online (Sandbox Code Playgroud)\n
\n

>eb 部署

\n …

amazon-web-services amazon-elastic-beanstalk docker-compose

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

Django Admin显示/隐藏字段如果在下拉菜单中选择了特定值

在Django管理员中,当Custom从下拉列表中选择选项时,我想显示内联start_dateend_date字段以允许用户指定特定的开始和结束日期而不是预定义的时间段.

经过一段时间的研究,建议包括:使用隐藏字段,在ModelAdmin中定义覆盖get_form,或使用自定义Javascript(我没有经验).

问题:当在Django Admin字段的下拉列表中选择特定值()时,如何显示(显示)内联start_dateend_date字段Custom?当Custom没有被选择,start_date并且end_date将从视图中隐藏.


步骤1: 第1步 - 选择日期范围

第2步: 第2步 - 如果选择自定义

第3步: 第3步 - 显示内联自定义日期字段


下面是我在本地的确切示例代码的完整示例:

settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    ...
    'dropdown.apps.DropdownConfig',
]
Run Code Online (Sandbox Code Playgroud)

apps.py

from django.apps import AppConfig

class DropdownConfig(AppConfig):
    name = 'dropdown'
Run Code Online (Sandbox Code Playgroud)

models.py

from django.db import models

class DropdownModel(models.Model):

    CHOICES = (
        ('Today', 'Today'),
        ('Yesterday', 'Yesterday'),
        ('Last 7 Days', 'Last 7 Days'),
        ('Last 14 Days', 'Last 14 Days'),
        ('Last 30 Days', 'Last 30 Days'),
        ('Last 60 Days', …
Run Code Online (Sandbox Code Playgroud)

python django django-forms django-admin

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

熊猫:如何比较DataFrame中的列表列表与Pandas(不是循环)?

数据帧

df = pd.DataFrame({'A': [['gener'], ['gener'], ['system'], ['system'], ['gutter'], ['gutter'], ['gutter'], ['gutter'], ['gutter'], ['gutter'], ['aluminum'], ['aluminum'], ['aluminum'], ['aluminum'], ['aluminum'], ['aluminum'], ['aluminum'], ['aluminum'], ['aluminum'], ['aluminum', 'toledo']], 'B': [['gutter'], ['gutter'], ['gutter', 'system'], ['gutter', 'guard', 'system'], ['ohio', 'gutter'], ['gutter', 'toledo'], ['toledo', 'gutter'], ['gutter'], ['gutter'], ['gutter'], ['how', 'to', 'instal', 'aluminum', 'gutter'], ['aluminum', 'gutter'], ['aluminum', 'gutter', 'color'], ['aluminum', 'gutter'], ['aluminum', 'gutter', 'adrian', 'ohio'], ['aluminum', 'gutter', 'bowl', 'green', 'ohio'], ['aluminum', 'gutter', 'maume', 'ohio'], ['aluminum', 'gutter', 'perrysburg', 'ohio'], ['aluminum', 'gutter', 'tecumseh', 'ohio'], ['aluminum', 'gutter', 'toledo', 'ohio']]}, columns=['A', …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

将Python IDLE设置为默认程序以打开.py扩展

我在Windows 7上.我Python 2.7.8 (64 bit)安装了.今天,我更改了.py从IDLE 打开文件到Windows命令处理器的默认程序,并愚蠢地选中了"始终使用所选程序打开此类文件"的复选框.

我想要做的是将我的默认程序更改回IDLE.

当我尝试将其更改回IDLE时,我转到Control Panel\Programs\Default Programs\Set Associations并选择.py名称并单击"更改程序".我确实看到,python.exe但选择什么也没做.然后我用"浏览"按钮定位到C:\Python27\Lib\idlelib,但不知道我是否应该选择idle.py,idle.pyw,idle.bat或其他一些空闲程序,这将迫使默认程序被闲置!

选择其中之一后没有任何反应.

如何使IDLE成为打开.py文件的默认程序,现在取消Windows命令处理器的默认设置?

python python-idle python-2.7

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

Python Pandas to_clipboard()UnicodeEncodeError:'ascii'编解码器无法编码字符

我想将数据帧数据传递到剪贴板,以便粘贴到Excel中.问题是,该字符'\xe9'导致编码问题,如下所示:

>>> df.to_clipboard()
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\pandas\util\clipboard.py", line 65, in winSetClipboard
    hCd = ctypes.windll.kernel32.GlobalAlloc(GMEM_DDESHARE, len(bytes(text))+1)
TypeError: string argument without an encoding

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#51>", line 1, in <module>
    df.to_clipboard()
  File "C:\Python34\lib\site-packages\pandas\core\generic.py", line 1028, in to_clipboard
    clipboard.to_clipboard(self, excel=excel, sep=sep, **kwargs)
  File "C:\Python34\lib\site-packages\pandas\io\clipboard.py", line 98, in to_clipboard
    clipboard_set(objstr)
  File "C:\Python34\lib\site-packages\pandas\util\clipboard.py", line 68, in winSetClipboard
    hCd = ctypes.windll.kernel32.GlobalAlloc(GMEM_DDESHARE, len(bytes(text, 'ascii'))+1)
UnicodeEncodeError: 'ascii' codec can't encode …
Run Code Online (Sandbox Code Playgroud)

python unicode clipboard python-3.x pandas

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

Pandas DataFrame 条形图 - 从特定颜色图中绘制不同颜色的条形图

如何使用熊猫数据框方法绘制条形图的条形图不同颜色plot

如果我有这个 DataFrame:

df = pd.DataFrame({'count': {0: 3372, 1: 68855, 2: 17948, 3: 708, 4: 9117}}).reset_index()

   index  count
0      0   3372
1      1  68855
2      2  17948
3      3    708
4      4   9117
Run Code Online (Sandbox Code Playgroud)

df.plot()我需要设置什么参数,以便图中的每个条形:

  1. 使用“配对”颜色图
  2. 为每个条绘制不同的颜色

我正在尝试什么:

df.plot(x='index', y='count', kind='bar', label='index', colormap='Paired', use_index=False)
Run Code Online (Sandbox Code Playgroud)

结果:

不是不同的颜色

我已经知道的(是的,这是可行的,但同样,我的目的是弄清楚如何df.plot只用它来做到这一点。肯定有可能吗?):

def f(df):
  groups = df.groupby('index')

  for name,group in groups:
    plt.bar(name, group['count'], label=name, align='center')

  plt.legend()
  plt.show()
Run Code Online (Sandbox Code Playgroud)

最终结果但用于循环

python plot matplotlib pandas

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

确定为什么特征在决策树模型中很重要

通常情况下,利益相关者不希望使用擅长预测的黑盒模型; 他们希望能够深入了解功能,以便更好地了解他们的业务,因此他们可以向其他人解释.

当我们检查xgboost或sklearn梯度增强模型的特征重要性时,我们可以确定特征重要性......但我们不明白为什么这些特征很重要,对吗?

有没有办法解释不仅哪些功能很重要,还有它们为什么重要?

我被告知要使用shap,但是运行甚至一些样板示例都会引发错误,所以我正在寻找替代方案(甚至只是一种程序性的方法来检查树木和收集的见解,除了plot_importance()绘图之外我可以带走).

在下面的示例中,如何解释WHY功能f19是最重要的(同时还意识到决策树是随机的,没有random_state或种子).

from xgboost import XGBClassifier, plot_importance
from sklearn.datasets import make_classification
import matplotlib.pyplot as plt
X,y = make_classification(random_state=68)
xgb = XGBClassifier()
xgb.fit(X, y)
plot_importance(xgb)
plt.show()
Run Code Online (Sandbox Code Playgroud)

feature_importance

更新: 我正在寻找的是程序化程序证明,上述模型选择的特征对预测能力有正面或负面影响.我想看看代码(不是理论),你将如何检查实际模型并确定每个特征的正面或负面贡献.目前,我认为这是不可能的,所以有人请证明我错了.我爱是错的!

我也理解决策树是非参数的并且没有系数.仍然有一种方法可以看出一个特征是否有积极贡献(该特征的一个单位增加y)或负面(该特征的一个单位减少y).

Update2: 尽管对这个问题大加赞赏,还有几个"亲密"的投票,看来这个问题毕竟不是那么疯狂.部分依赖图可能是答案.

Friedman(2001)引入了部分依赖图(PDP),目的是解释复杂的机器学习算法.解释线性回归模型并不像解释支持向量机,随机森林或梯度增强机模型那么复杂,这是部分依赖图可以使用.对于一些统计解释,您可以在这里参考和更多进展.一些算法具有用于发现变量重要性的方法,但是它们不表示变量是否对模型产生正面负面影响.

python machine-learning decision-tree scikit-learn xgboost

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