我有一个整数和一个列表.我想创建一个以变量开头并以列表结尾的新列表.写a + list我得错了.编译器处理a为整数,因此我不能使用append或extend.你会怎么做?
我正在使用MacOS X 10.7.5,由于握手失败,我需要更新的OpenSSL版本.互联网上有几个教程,我尝试了以下内容:
brew install openssl
brew link openssl --force
Run Code Online (Sandbox Code Playgroud)
然而,它不起作用:
openssl version
OpenSSL 0.9.8r 8 Feb 2011
brew unlink openssl && brew link openssl --force
Unlinking /usr/local/Cellar/openssl/1.0.1e... 1139 links removed
Linking /usr/local/Cellar/openssl/1.0.1e... 1139 symlinks created
Run Code Online (Sandbox Code Playgroud)
SVN问题也未解决.有任何想法吗?我宁愿不尝试MacPorts方式,因为它可能会干扰Homebrew.
我经常使用ipdb,只是跳转到一段孤立的代码,即很难编写一个使用它的真实脚本.相反,我用模拟编写了一个最小的测试用例并跳转到它.
工作流程的示例:
def func():
...
import ipdb
ipdb.set_trace()
...
def test_case():
...
func()
...
Run Code Online (Sandbox Code Playgroud)
然后,调用
py.test test_file.py -s -k test_case
Run Code Online (Sandbox Code Playgroud)
现在,通常我只检查一个或两个变量,然后想要退出.更改代码并重新执行.
我该如何戒烟?手册说q退出调试器.它(真的)没有.在调试器实际终止之前,您必须退出几次.Ctrl-C和Ctrl-D的相同行为(多次击中Ctrl-D的挫折最终也会退出终端).
是否有一种强制退出的聪明方法?这个工作流程是否合理?这样做的标准方法是什么?
我正在使用vim而且我正在做很多事情
:make
Run Code Online (Sandbox Code Playgroud)
在vim内.唯一真正烦人的是我必须按两次ENTER才能跳回编辑器.如果一切顺利,我只想直接回去.我希望看到错误一次并按一个键直接跳转到错误行.
有任何想法吗?
我们使用以下命令解析带有一些数字的CSV文件:
tt <- read.table("test2.csv",sep=";",stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)
它有效.打印tt[1,]产生一个很好的矢量,sd(tt[1,])是明智的.
但是,当我们尝试
diff(tt[1,])
Run Code Online (Sandbox Code Playgroud)
命令行返回错误:
Error in r[i1] - r[-length(r):-(length(r) - lag + 1L)] :
non-numeric argument to binary operator error
Run Code Online (Sandbox Code Playgroud)
这是为什么?有任何想法吗?
我们有这个简洁的小脚本在工作,让我们使用互联网over linux环境代理.例如
withproxy git clone https://github.com/VundleVim/Vundle.vim.git
Run Code Online (Sandbox Code Playgroud)
工作得很好,甚至没有提示我输入我的用户名和密码.
如何在.vimrcfor Vundle 中进行设置,以便所有git内容都以此代理脚本为前缀?
假设我有一个包含一列数据的 DataFrame。例如:
np.random.random_integers(0,2,1000)
data = np.cumsum(np.random.random_integers(0,2,1000))
idx = pd.date_range('1-1-2001', freq='D', periods=1000)
df = pd.DataFrame(data, idx)
Run Code Online (Sandbox Code Playgroud)
我不想使用完整的 DataFrame,而是只想返回与前一行不同的那些行。
因此,这
2001-01-20 21
2001-01-21 21
2001-01-22 21
2001-01-23 23
2001-01-24 24
2001-01-25 24
Run Code Online (Sandbox Code Playgroud)
会导致这个
2001-01-20 21
2001-01-23 23
2001-01-24 24
Run Code Online (Sandbox Code Playgroud)
现在我会这样做
dff = df.diff() # Compute another Series with the differences
dff.ix[0, ] = df.ix[0, ] # Instead of NAN for the row use first row of df
df['diff'] = dff # Add as column in df
df = df[df['diff'] >= 1] # …Run Code Online (Sandbox Code Playgroud) 我们有一个基于numpy的算法,应该处理不同类型的数据.
def my_fancy_algo(a):
b = np.sum(a, axis=1)
# Do something b
return b
Run Code Online (Sandbox Code Playgroud)
如果我们通过a=np.array[1.0, 2.0, 3.0]然后b评估到[6.0].
如果我们通过,a=6.0那么我们得到
*** ValueError: 'axis' entry is out of bounds
Run Code Online (Sandbox Code Playgroud)
期望的行为是我们为两个输入获得相同的返回值6.0not([6.0]).
什么是正确的pythonic和安全的方法来处理这个?type?shape?
我们有一个包含不同类型工作的系统。例如,让我们称它们为:
job_1
job_2
job_3
Run Code Online (Sandbox Code Playgroud)
它们都需要不同的参数集(和可选参数)。即我们job_1(x)为不同的x= A, B, C ...。job_2运行一组参数,这些参数取决于结果job_1(x)并job_2加载job_A(x)存储的数据。等等。
结果是依赖关系的树结构。现在,这些工作偶尔会因某种原因而失败。因此,如果job_Aforx=B失败,该树的分支将完全失败并且不应运行。所有其他分支都应该运行。
所有作业都用 Python 编写并使用并行性(基于产生 SLURM 作业)。它们是用 cron 安排的。这显然不是很好,有两个主要缺点:
job_A)未完成,则job_B可能会计划运行,并且会失败或基于过时的日期运行。为了解决这个问题,我们正在研究用于调度或可视化的气流,因为它是用 Python 编写的,它似乎大致符合我们的需求。不过,我看到了不同的挑战:
job_B取决于job_A)或非常宽(即job_B(y)对100个参数依赖job_A(x=A)。在第一种情况下的可视化树将有大约10片叶子,但会使得调试非常困难,因为这项工作可能只是对于某个参数失败了。后一种情况下的可视化树会很宽,大约有 300 个叶子。它会更准确,但可视化可能很难阅读。我们可以过滤失败的作业,看看它们的依赖关系吗?气流是一个不错的选择吗?我知道还有其他一些(luigi、Azkaban 等)与 Hadoop 堆栈有些相关(我们没有使用它,因为它不是大数据)。需要多少黑客攻击?多少黑客行为是明智的?
我想对Pandas DataFrames进行类型检查,即我想指定DataFrame必须具有哪些列标签以及其中dtype存储了哪种数据类型()。粗略的实现(受此问题启发)将像这样工作:
from collections import namedtuple
Col = namedtuple('Col', 'label, type')
def dataframe_check(*specification):
def check_accepts(f):
assert len(specification) <= f.__code__.co_argcount
def new_f(*args, **kwds):
for (df, specs) in zip(args, specification):
spec_columns = [spec.label for spec in specs]
assert (df.columns == spec_columns).all(), \
'Columns dont match specs {}'.format(spec_columns)
spec_dtypes = [spec.type for spec in specs]
assert (df.dtypes == spec_dtypes).all(), \
'Dtypes dont match specs {}'.format(spec_dtypes)
return f(*args, **kwds)
new_f.__name__ = f.__name__
return new_f
return check_accepts
Run Code Online (Sandbox Code Playgroud)
我不介意检查功能的复杂性,但是它增加了很多样板代码。
@dataframe_check([Col('a', int), Col('b', …Run Code Online (Sandbox Code Playgroud) python ×6
pandas ×2
types ×2
vim ×2
airflow ×1
append ×1
arrays ×1
cron ×1
dataframe ×1
debugging ×1
exit ×1
git ×1
homebrew ×1
ipdb ×1
linux ×1
list ×1
macos ×1
makefile ×1
numpy ×1
openssl ×1
proxy ×1
python-3.x ×1
r ×1
svn ×1
time-series ×1
typechecking ×1
variables ×1
vundle ×1
workflow ×1