我在使用Python调用shell命令时读取了我在StackOverflow上找到的每个线程subprocess,但我找不到适用于我的情况的答案:
我想从Python中执行以下操作:
运行shell命令command_1.收集变量中的输出result_1
Shell管道 result_1进入command_2并收集输出result_2.换句话说,command_1 | command_2 使用我在之前的步骤中运行时获得的结果运行command_1
将相同的管道result_1输入第三个命令command_3并收集结果result_3.
到目前为止,我尝试过:
p = subprocess.Popen(command_1, stdout=subprocess.PIPE, shell=True)
result_1 = p.stdout.read();
p = subprocess.Popen("echo " + result_1 + ' | ' +
command_2, stdout=subprocess.PIPE, shell=True)
result_2 = p.stdout.read();
Run Code Online (Sandbox Code Playgroud)
原因似乎是"echo " + result_1 不能模拟获得管道命令输出的过程.
这是否可以使用子进程?如果是这样,怎么样?
假设我有一个运行M-x ansi-term缓冲区(例如运行zsh)的Emacs窗口(即Emacs称之为框架的细分),其~500宽度为像素宽.然后我运行几个shell命令,输出被包装以适应这些500像素.
假设我现在使这个窗口或缓冲区更宽(例如1000像素),可能是因为我杀死了框架中的其他窗口,为我的ansi-term窗口提供了更多空间.
有没有办法让我的ansi-term窗口中的旧输出调整大小以利用新的窗口大小?(即根据新窗口大小制作更宽的线条并重新包装它们)?
我对如何安装R(通过编译)作为共享库感到有点困惑.
# <go to the R source directory>
make distclean
./configure --enable-R-shlib
make
make install
Run Code Online (Sandbox Code Playgroud)
但是第一个make(make distclean)将在同一目录树下删除任何先前的R安装(例如bin文件夹的内容).
如果我想为R解释器和共享库使用相同的安装,该怎么办?例如,假设我想使用解释器来安装R包,然后使用安装的共享库来从Rpy2调用R(和那些包).
否则,我如何安装R包以供Rpy2使用?
说我有一个矩阵:
> import numpy as nap
> a = np.random.random((5,5))
array([[ 0.28164485, 0.76200749, 0.59324211, 0.15201506, 0.74084168],
[ 0.83572213, 0.63735993, 0.28039542, 0.19191284, 0.48419414],
[ 0.99967476, 0.8029097 , 0.53140614, 0.24026153, 0.94805153],
[ 0.92478 , 0.43488547, 0.76320656, 0.39969956, 0.46490674],
[ 0.83315135, 0.94781119, 0.80455425, 0.46291229, 0.70498372]])
Run Code Online (Sandbox Code Playgroud)
而且我用它打了一些洞np.NaN,例如:
> a[(1,4,0,3),(2,4,2,0)] = np.NaN;
array([[ 0.80327707, 0.87722234, nan, 0.94463778, 0.78089194],
[ 0.90584284, 0.18348667, nan, 0.82401826, 0.42947815],
[ 0.05913957, 0.15512961, 0.08328608, 0.97636309, 0.84573433],
[ nan, 0.30120861, 0.46829231, 0.52358888, 0.89510461],
[ 0.19877877, 0.99423591, 0.17236892, 0.88059185, nan ]]) …Run Code Online (Sandbox Code Playgroud) python numpy machine-learning mathematical-optimization scikit-learn
受到这个答案中的构造的启发,我试图做以下事情:
values = range(3)
vector = np.random.randint(3, size=(5,))
f = lambda x: x in values
result = [f(a) for a in values]
Run Code Online (Sandbox Code Playgroud)
但我明白了global name 'values' is not defined.
如果我尝试上面链接的解决方案,我得到同样的错误,即:
A = [[0,1,2], [1,2,3], [2,3,4]]
v = [1,2]
B = [map(lambda val: val in v) for a in A]
Run Code Online (Sandbox Code Playgroud)
自该解决方案发布以来,Python有没有改变?(我正在使用2.7.4).如果是这样,我如何在lambda函数中访问外部变量?我应该宣布它是全球性的吗?传递它作为另一个输入?
我只是在IPython(1.0)的嵌入式shell中注意到这个问题.
GitHub上有关于该主题的IPython 票证,但目前还不清楚问题是否已经解决.
这个错误可以在django的shell中重新生成(感谢@Ashwini)
$ ./manage.py shell
Python 2.7.4 (default, Apr 19 2013, 18:32:33)
Type "copyright", "credits" …Run Code Online (Sandbox Code Playgroud) 假设我有一个包含多个时间戳和值的数据框.我想测量? values / ?t 每一2.5秒.Pandas是否提供时间差异化的任何工具?
time_stamp values
19492 2014-10-06 17:59:40.016000-04:00 1832128
167106 2014-10-06 17:59:41.771000-04:00 2671048
202511 2014-10-06 17:59:43.001000-04:00 2019434
161457 2014-10-06 17:59:44.792000-04:00 1294051
203944 2014-10-06 17:59:48.741000-04:00 867856
Run Code Online (Sandbox Code Playgroud) 关于MATLAB如何利用并行硬件,我有几个密切相关的问题.它们很短,所以我认为最好将它们放在同一篇文章中:
我在以下文档中阅读了以下内容randomForest:
strata:用于分层抽样的(因子)变量.
sampsize:要绘制的样本的大小.对于分类,如果sampsize是地层数量的长度向量,则采样按地层分层,而样本的元素则表示从地层中抽取的数字.
作为参考,该函数的接口由下式给出:
randomForest(x, y=NULL, xtest=NULL, ytest=NULL, ntree=500,
mtry=if (!is.null(y) && !is.factor(y))
max(floor(ncol(x)/3), 1) else floor(sqrt(ncol(x))),
replace=TRUE, classwt=NULL, cutoff, strata,
sampsize = if (replace) nrow(x) else ceiling(.632*nrow(x)),
nodesize = if (!is.null(y) && !is.factor(y)) 5 else 1,
maxnodes = NULL,
importance=FALSE, localImp=FALSE, nPerm=1,
proximity, oob.prox=proximity,
norm.votes=TRUE, do.trace=FALSE,
keep.forest=!is.null(y) && is.null(xtest), corr.bias=FALSE,
keep.inbag=FALSE, ...)
Run Code Online (Sandbox Code Playgroud)
我的问题是:一会究竟是如何使用strata 和sampsize?这是一个最小的工作示例,我想测试这些参数:
library(randomForest)
iris = read.table("http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data", sep = ",", header = FALSE)
names(iris) = c("sepal.length", "sepal.width", "petal.length", "petal.width", "iris.type")
model = randomForest(iris.type …Run Code Online (Sandbox Code Playgroud) 我无法dot() 在官方文档中找到该方法的条目.然而,方法就在那里,我可以使用它.为什么是这样?
在这个主题上,有没有办法计算数据框中每一行与另一个向量的元素乘法?(并获得一个dataframe背面?),即类似dot()但不是计算点积,人们计算元素产品.
在ansi-termEmacs 的终端中,当我ssh到特定的远程主机时,终端无法正确识别,我收到错误:
'eterm-color': unknown terminal type.
Run Code Online (Sandbox Code Playgroud)
我添加export TERMINFO=~/.terminfo到.bashrc远程计算机上,我在远程计算机上尝试了以下内容:
cp -r /usr/share/emacs/21.4/etc/e ~/.terminfo
Run Code Online (Sandbox Code Playgroud)
为了以防万一,我还尝试将我自己的本地副本/etc/e(Emacs 24.3)复制到~/.terminfo远程计算机上.
此外,如果它很重要,如果我尝试infocmp远程机器,我得到:
>infocmp
infocmp: couldn't open terminfo file /usr/share/terminfo/e/eterm-color.
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?