我注意到有些程序有自己的tab-completion.
例如,git:
git checkout
Run Code Online (Sandbox Code Playgroud)
允许选项卡完成分支名称.
这是如何完成的?
我需要(快速)稀薄一个矩阵。
Rarefaction - 将丰度矩阵转换为均匀的采样深度。
在这个例子中,每一行都是一个样本,采样深度是该行的总和。我想通过min(rowsums(matrix))样本对矩阵进行随机采样(有替换)。
假设我有一个矩阵:
>>> m = [ [0, 9, 0],
... [0, 3, 3],
... [0, 4, 4] ]
Run Code Online (Sandbox Code Playgroud)
min(rowsums(matrix))稀疏函数按替换次数(在本例中为 6)逐行随机采样。
>>> rf = rarefaction(m)
>>> rf
[ [0, 6, 0], # sum = 6
[0, 3, 3], # sum = 6
[0, 3, 3] ] # sum = 6
Run Code Online (Sandbox Code Playgroud)
结果是随机的,但行总和始终相同。
>>> rf = rarefaction(m)
>>> rf
[ [0, 6, 0], # sum = 6
[0, 2, 4], # sum = 6
[0, 4, …Run Code Online (Sandbox Code Playgroud) 我制作了一个Matrix类,我想在代码的各个部分使用它.
class Matrix
def initialize(x, y, v=0)
@matrix = Array.new
(0..y).each do |j|
@matrix[j] = Array.new
(0..x).each do |i|
@matrix[j][i] = v
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
当此代码与使用它的代码包含在同一个类中时,一切运行正常.
当我将此代码移动lib/matrix.rb并要求它时,我收到以下错误:
./phylograph:30:in `block in run': private method `new' called for Matrix:Class (NoMethodError)
Run Code Online (Sandbox Code Playgroud) 我在R中做了很多数据探索,我想保留我生成的每个图(来自交互式R控制台).我正在考虑一个目录,我绘制的所有内容都会自动保存为带时间戳的PDF.我也不希望这会干扰正常显示的情节.
有什么东西我可以添加到我~/.Rprofile这样做吗?
我在python中有一个脚本,可以从命令行调用并使用optparse.
script -i arg1 -j arg2
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我(options, args) = parser.parse_args()用来创建options然后使用options.arg1来获取参数.
但我也希望它可以作为模块导入.
from script import *
function(arg1=arg1, arg2=arg2)
Run Code Online (Sandbox Code Playgroud)
我已经设法使用一个非常蹩脚的解决方案:通过提供虚拟对象.
def main():
class Options:
''' dummy object '''
def __init__(self):
pass
options = Options
for k in kwargs:
setattr(options, k, kwargs[k])
Run Code Online (Sandbox Code Playgroud)脚本的其余部分不知道差异,但我认为这个解决方案很难看.
有更好的解决方案吗?
假设我有一个程序输出到由(必需)参数提供的文件:
./foo -o bar.txt
Run Code Online (Sandbox Code Playgroud)
有没有办法欺骗它输出到管道?这只是输出到一个名为的文件-.
./foo -o - | less
Run Code Online (Sandbox Code Playgroud)