我需要通过运行which abc命令来设置环境.是否有Python等效的which命令功能?这是我的代码.
cmd = ["which","abc"]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
res = p.stdout.readlines()
if len(res) == 0: return False
return True
Run Code Online (Sandbox Code Playgroud) 理想情况下,我可以使用像这样的程序
find [file or directory name]
Run Code Online (Sandbox Code Playgroud)
报告具有匹配文件名/目录的路径.不幸的是,这似乎只检查当前目录,而不是整个文件夹.
我也尝试过找到哪个,但是没有找到文件,即使我知道它在某个地方的计算机上.
我想找出CMD shell使用哪个版本的可执行文件.在任何unix shell中,我都会用which它来找到它.
其中一个Windows shell中是否有等效命令?
让我们先做一个小例子,在R中计算:
x<- c(1,3,1,4,2)
max(which(x<2))
[1] 3
Run Code Online (Sandbox Code Playgroud)
现在,我想这样做不只是为了一个值2,而是同时为多个值.它应该给我这样的东西:
max(which(x<c(1,2,3,4,5,6)))
[1] NA 3 5 5 5 5
Run Code Online (Sandbox Code Playgroud)
当然我可以运行一个for循环,但这很慢:
for(i in c(1,2,3,4,5,6)){
test[i]<-max(which(x<i))
}
Run Code Online (Sandbox Code Playgroud)
有没有快速的方法来做到这一点?
我试图采用以下R语句并使用NumPy将其转换为Python:
1 + apply(tmp,1,function(x) length(which(x[1:k] < x[k+1])))
Run Code Online (Sandbox Code Playgroud)
是否有Python等效于哪个()?这里,x是矩阵tmp中的行,k对应于另一个矩阵中的列数.
以前,我尝试了以下Python代码,并收到了值错误(操作数无法与形状一起广播):
for row in tmp:
print np.where(tmp[tmp[:,range(k)] < tmp[:,k]])
Run Code Online (Sandbox Code Playgroud) 我有一个由13列(称为PC)组成的矩阵.我想创建一个新矩阵,只包含值介于4和8之间的行(称为EUR).我尝试使用这个声明:
EUR <- PCs[which(PCs$V13 < 9 && PCs$V13 > 3), ]
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用......(我只有一排,而有几百个)
谁知道这个命令有什么问题?
我想确定给定日期的向量中最接近的日期.假设我有以下日期向量(有5个随机日期):
coldate= as.Date(c("2013-08-03", "2013-09-04", "2013-09-08", "2013-09-12", "2013-11-01"));
Run Code Online (Sandbox Code Playgroud)
现在,我想x = as.Date("2013-10-01")在这个向量中找到最接近的日期.
这是我的代码:
> which((coldate-x) == min(coldate-x))
[1] 1
Run Code Online (Sandbox Code Playgroud)
结果应该是4,因为日期"2013-09-12"是最接近的.但是,我有1 ...我的代码有什么问题?
之前已经问过这个问题的变化,我仍然无法理解如何根据我想要设置的条件实际切片python系列/ pandas数据帧.
在R中,我要做的是:
df[which(df[,colnumber] > somenumberIchoose),]
Run Code Online (Sandbox Code Playgroud)
which()函数在数据框的列中查找大于somenumberIchoose的行的条目索引,并将其作为向量返回.然后,我使用这些行索引对数据帧进行切片,以指示我想在新表单中查看哪些数据帧行.
在python中有相同的方法吗?我已经看过枚举的引用,在阅读文档后我并不完全理解.我的示例为了获得行索引,现在看起来像这样:
indexfuture = [ x.index(), x in enumerate(df['colname']) if x > yesterday]
Run Code Online (Sandbox Code Playgroud)
但是,我继续收到无效的语法错误.我可以通过循环遍历值,并自己手动进行搜索来破解解决方法,但这似乎非常非pythonic和低效.
枚举()究竟是做什么的?什么是在矢量中找到满足所需参数的值索引的pythonic方法?
注意:我正在使用Pandas作为数据帧
我刚才读过一些bash FAQ(我不记得了),which应该避免和command -v首选.
为什么会这样?任何一个的优点和缺点是什么?
谁能解释一下python 2.6如何在我的机器上默认运行?它看起来像 python2.7,所以它似乎which没有给我正确的信息.
~> python --version
Python 2.6.5
~> which python
/opt/local/bin/python
~> /opt/local/bin/python --version
Python 2.7.2
~> ls -l /opt/local/bin/python
lrwxr-xr-x 1 root admin 24 12 Oct 16:02 /opt/local/bin/python -> /opt/local/bin/python2.7
Run Code Online (Sandbox Code Playgroud)
当我生成错误时,我会看到真正运行的是什么.为什么会这样?
~> python -error-making-argument
Unknown option: -e
usage: /Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Try `python -h' for more information.
Run Code Online (Sandbox Code Playgroud)
我该如何纠正呢?
- - 编辑: - -
来自评论中的建议:
~> alias
alias cp='cp -i'
alias gcc='gcc -Wall'
~> type …Run Code Online (Sandbox Code Playgroud)