我使用Ruby on Rails作为我的后端制作Web应用程序.我在前端使用React和Flux,这是JavaScript.我可以完全使用我需要的调试工具.我只是在我的应用程序的任何地方添加代码行"debugger",以便执行停止.我在Rails中使用byebug gem.当在后端代码上执行"调试器"代码行时,调试发生在命令行上; 当它在JavaScript代码中发生时,调试发生在Chrome Dev Tools中.换句话说,我可以很快地进行调试.
Python中等效的方便调试工具是什么?换句话说,一个人已经可以编程一般,并且只是想快速能够在Python中使用调试?我正在使用Atom编辑器(就像我在制作Web应用程序时使用的那样).
我有一个20列的矩阵.最后一列是0/1标签.
这里有数据链接.
我正在尝试使用交叉验证在数据集上运行随机林.我使用两种方法:
sklearn.cross_validation.cross_val_score
sklearn.cross_validation.train_test_split
当我做我认为完全相同的事情时,我会得到不同的结果.举例来说,我使用上面的两种方法运行双重交叉验证,如下面的代码所示.
import csv
import numpy as np
import pandas as pd
from sklearn import ensemble
from sklearn.metrics import roc_auc_score
from sklearn.cross_validation import train_test_split
from sklearn.cross_validation import cross_val_score
#read in the data
data = pd.read_csv('data_so.csv', header=None)
X = data.iloc[:,0:18]
y = data.iloc[:,19]
depth = 5
maxFeat = 3
result = cross_val_score(ensemble.RandomForestClassifier(n_estimators=1000, max_depth=depth, max_features=maxFeat, oob_score=False), X, y, scoring='roc_auc', cv=2)
result
# result is now something like array([ 0.66773295, 0.58824739])
xtrain, xtest, ytrain, ytest = …
Run Code Online (Sandbox Code Playgroud) 我现在每天都在使用matplotlib五个月,而且我仍然发现新数据的创建令人困惑.
通常我使用2x2子图创建一个图形,例如,使用如下内容:
import matplotlib.pyplot as plt
import itertools as it
fig,axes = plt.subplots(2,2)
axit = (ax for ax in it.chain(*axes))
for each of four data series I want to plot:
ax = next(axit)
ax.plot(...)
Run Code Online (Sandbox Code Playgroud)
我现在的问题是:如何完全独立于pyplot进行操作,即如何创建一个图形,用图表填充它,进行样式更改,并且只告诉该图形出现在我希望它出现的确切时刻.这是我遇到的麻烦:
import matplotlib as mpl
gs = gridspec.GridSpec(2,2)
fig = mpl.figure.Figure()
ax1 = fig.add_subplot(gs[0])
ax1.plot([1,2,3])
ax2 = fig.add_subplot(gs[1])
ax2.plot([3,2,1])
Run Code Online (Sandbox Code Playgroud)
运行上述内容之后,唯一想到的就是使用:
plt.draw()
Run Code Online (Sandbox Code Playgroud)
但这不起作用.有图的人物出现了什么?也是
fig = mpl.figure.Figure()
Run Code Online (Sandbox Code Playgroud)
我需要做的就是创建没有pyplot的数字?
我使用原子文本编辑器.以下是让我的linter使用React和ES6的步骤:
npm install --save eslint
eslint --init
,这有助于使用我在命令行回答的一系列问题创建文件)每次开始编写新项目时,我都不想创建.eslintrc.我想使用全局.eslintrc文件,我在以下时找到该文件:
我怎样才能这样做,以便当我启动一个新文件并开始编码时,我已经获得了在这个全局文件中定义的选项?
特别是,这是我在个别项目中使用的设置:
{
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"sourceType": "module"
},
"env": {
"es6": true
},
"plugins": [
"eslint-plugin-react"
]
}
Run Code Online (Sandbox Code Playgroud)
我希望这是默认值.
我已经在 React-Native 中编码了一段时间,当我需要编写一些原生 Android 代码时。但是,直到我开始使用使用此特定 gradle 任务的库之前,我才看到此 gradle 任务。
该库是一个端到端测试库(detox),它使用此命令"cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd .."
来构建.apk
将在自动化 e2e 测试中使用的 android 。实际上,它构建了两个 apk,一个是 debug,一个是 AndroidTest,但我不知道后者来自哪里,配置在哪里,或者文档在哪里。
我搜索了一个小时,除了这个非常简短的描述之外没有找到任何东西:
assembleAndroidTest - Assembles all the Test applications.
什么是测试应用程序?
另外,什么是-DtestBuildType=debug
?
当我在像带有Prelude的GHCI这样的REPL中时,我写
*> compare 5 7
LT
Run Code Online (Sandbox Code Playgroud)
为什么我compare
可以在REPL中直接调用该函数()?
我知道compare
是在typeclass中定义的Ord
。类型类的定义Ord
当然表明它是的子类Eq
。
这是我的推理路线:
5
具有type Num a => a
,并且Num
typeclass不是的子类Eq
。也,
Prelude> :t (compare 5)
(compare 5) :: (Num a, Ord a) => a -> Ordering
Run Code Online (Sandbox Code Playgroud)
因此,当我应用数字类型参数时,这里还有一个附加的约束。当我打电话时compare 5 7
,参数的类型缩小到确实有一个实例的东西Ord
。我认为范围的缩小发生在与typeclass相关联的默认具体类型上:在的情况下Num
,这是Integer
,其实例为Real
,其实例为Ord
。
但是,由于来自非功能性编程背景,我会想象必须调用compare
其中一个数字(例如,在OOP中的对象上对其进行调用)。如果5
is是Integer
实现的Ord
,那为什么我要调用compare
REPL本身呢?对于我来说,这显然是一个与范式转换有关的问题,但我仍然没有理解。希望有人可以解释。
使用枚举与类型别名有何优缺点,如下所示?
const enum LanguageEnum {
English,
Spanish
}
type LanguageAlias = "English" | "Spanish";
let l: LanguageAlias = "English";
let la: LanguageEnum = Language.English
Run Code Online (Sandbox Code Playgroud)
使用枚举的目的是枚举类型的可能值。但是字符串文字的并集不是也枚举了可能的类型吗?
我一直觉得这些 TS 枚举很奇怪。
我创建了一个最小示例来展示我的问题:Github repo。
我有一个 lerna monorepo,packages
文件夹中有两个 npm 包,这些包被称为:
utils : 导出一个函数:
export const add = (a:number, b: number) => a + b
Run Code Online (Sandbox Code Playgroud)
component-library::导出一个简单的函数式 React 组件:
import React from 'react';
import { add } from '@project/utils';
export const MyComponent = () => <div>{add(2, 2)}</div>;
Run Code Online (Sandbox Code Playgroud)
monorepo 的根有一个tsconfig.json
,它定义了一个paths
键来将表单的任何导入映射@project/*
到包。
{
"compilerOptions": {
"jsx": "react",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"moduleResolution": "node",
"allowJs": true,
"baseUrl": ".",
"paths": {
"@project/*": ["packages/*/src"]
}
},
"exclude": ["**/build/**"]
}
Run Code Online (Sandbox Code Playgroud)
每个包都有一个 …
我已经尝试了几个小时来获得正确的简单单选按钮列表的大小和纵横比,但没有成功。首先,导入模块:
import matplotlib.pyplot as plt
from matplotlib.widgets import RadioButtons
Run Code Online (Sandbox Code Playgroud)
然后创建实际的单选按钮:
plt.figure()
rax = plt.axes([0.1, 0.1, 0.6, 0.6], frameon=True)
labels = [str(i) for i in range(10)]
radio = RadioButtons(rax, labels)
Run Code Online (Sandbox Code Playgroud)
如果我使用 plt.axes 的 'aspect' 参数并将其设置为 'equal':
plt.figure()
rax = plt.axes([0.1, 0.1, 0.6, 0.6], frameon=True, aspect='equal')
labels = [str(i) for i in range(10)]
radio = RadioButtons(rax, labels)
Run Code Online (Sandbox Code Playgroud)
如果我仍然使用设置为“相等”的“方面”参数将高度降低到 0.3,我只会得到先前结果的较小版本(较小的按钮但仍然在较小的轴实例中重叠)。
我真正想做的是具有非常窄的宽度和较大的高度,并且仍然具有不重叠的圆形单选按钮:
plt.figure()
rax = plt.axes([0.1, 0.1, 0.2, 0.8], frameon=True)
labels = [str(i) for i in range(10)]
radio = RadioButtons(rax, labels)
Run Code Online (Sandbox Code Playgroud)
但这会生成垂直椭圆形的单选按钮: …
我已经阅读了文档(即this)和一些关于declare
TypeScript 中关键字的博客文章,但我仍然不明白。我想要的是其最简单用法的清晰示例。
这是我最初想出这个最简单的例子(这可能是不正确的)的推理路线:
有一个.js
文件导出(无类型,因为这是普通的 JS)。
.ts
无论.js
导出的文件如何,都有一个文件导入。
需要导出和导入什么(一个对象?一个函数?)让我看到 TS 显示可以通过使用修复的错误declare
?
python ×4
typescript ×3
javascript ×2
matplotlib ×2
android ×1
atom-editor ×1
debugging ×1
detox ×1
eslint ×1
haskell ×1
lerna ×1
react-native ×1
reactjs ×1
rollup ×1
scikit-learn ×1