如果我试图在我调用rsync
(或scp
)多次的Emacs Lisp函数中运行shell命令,我应该使用哪个shell-command变量?我目前正在使用shell-command
,它会锁定Emacs,直到完成该过程,并且不会打印带有--verbose
to的应该可见的输出rsync
; 我可以用shell-command
用&
在命令字符串的结尾,使其同步,这并打印进度-但同时它并没有完全"锁定"的Emacs,迷你缓冲区反复问我是否要终止的进程是沉重同时; 并且start-process-shell-command
,只有在传输第一个文件/目录后才会暂停该功能; 当rsync
通过我的功能进行多次通话时忽略其余部分.这些都不是理想的,任何提示?
如果我想将一个函数逐行(或逐列)应用于ndarray,我是否会看到ufuncs(看起来不像)或某种类型的数组广播(不是我正在寻找的那个?) ?
编辑
我正在寻找类似R的应用功能.例如,
apply(X,1,function(x) x*2)
Run Code Online (Sandbox Code Playgroud)
将通过匿名定义的函数将2乘以X的每一行,但也可以是命名函数.(这当然是一个愚蠢的,人为的例子,apply
实际上并不需要).没有通用的方法在NumPy数组的"轴"上应用函数,?
如果我想使用箭头/箭头功能之一绘制箭头而不是轴线,我该如何显示线/箭头?示例如下:
import matplotlib.pyplot as plt
import matplotlib.patches as pts
plt.ion()
ax = plt.axes()
ax.set(xlim=[0,1],ylim=[0,1],autoscale_on=False,clip_on=False)
ax.set(frame_on=False,xticks=[],yticks=[])
pts.Arrow(0,0,1,0,width=0.05)
plt.arrow(0,0,0,1,shape='right',lw=3,fill=True)
ax.text(1,0,'functionalization',
verticalalignment='top',
horizontalalignment='center')
ax.text(0,1,'void space/structure')
plt.draw()
Run Code Online (Sandbox Code Playgroud)
pts.Arrow什么也没画,plt.arrow画了一条线但没有箭头.
我正在尝试使用大矩阵的协方差numpy.cov
.我收到以下错误:
Python(22498,0xa02e3720) malloc: *** mmap(size=1340379136) failed (error code=12) *** error: can't allocate region *** set a breakpoint in malloc_error_break to debug Process Python bus error
对于32位机器/构建来说这似乎并不少见(我有一个64位的mac os x 10.5,但使用32位python和numpy构建,因为我在64-上构建numpy + scipy + matplotlib时遇到了麻烦位安装).
那么在这一点上,如果没有切换机器(目前没有其他可用的话),那么我将继续进行分析的推荐行动方案是什么?出口到fortran/C?有一个简单的(r)解决方案吗?谢谢你的建议.
在Python中,您可以按名称指定字符串格式(这当然是一个愚蠢的例子):
parameters = {'label':'months', 'april':4,'may':5,'june':6}
formatstring = '%(label)s: %(april)d %(may)d %(june)d'
outputstring = formatstring % parameters
Run Code Online (Sandbox Code Playgroud)
(formatstring % parameters
符号是与do.call(sprintf,c(formatstring,as.list(parameters)))
R 等效的Python )
输出字符串为" months: 4, 5, 6
".参数存储为键值对(可以称为各种语言的字典,哈希表或命名列表).字符串格式%(text)s
允许您引用text
应在该插槽中格式化的字典项().
R中有没有相同的东西,或者你找到了一个好的解决方法?
我想知道是否有人知道一个好方法让R或ESS停止执行其余代码超出发生错误的点,如果我正在评估一个区域或缓冲区(我只发现了相反的请求)帮助档案).我正在查看R帮助文件,但option(error=stop)
只会停止执行有问题的函数或语句,但不会停止执行它们.谢谢!
这是一个相当基本的问题,但是在emacs的单独框架(make-new-frame)中打开新文件或在emacsclient实例中打开文件之间的实际区别是什么?我可以看到,如果您正在通过终端工作,差异很明显......但emacsclient是否还可以将(buffer-menu)或ido-mode访问的缓冲区列表限制为在该特定emacsclient实例中打开的缓冲区?
这里有长期的R和Python用户.我使用R进行日常数据分析,使用Python进行文本处理和shell脚本更重的任务.我正在处理越来越大的数据集,当我得到它们时,这些文件通常是二进制文件或文本文件.我通常做的事情类型是在大多数情况下应用统计/机器学习算法并创建统计图形.我有时使用R和SQLite,并为迭代密集型任务编写C语言; 在研究Hadoop之前,我正在考虑在NumPy/Scipy上投入一些时间,因为我听说它有更好的内存管理[并且我的背景转换为Numpy/Scipy看起来并不那么大] - 我想知道是否有人有经验使用这两个,并可以评论这方面的改进,如果Numpy中有成语来处理这个问题.(一世' 我也知道Rpy2,但想知道Numpy/Scipy能否满足我的大部分需求).谢谢 -
在我编写的许多脚本中,我经常以"功能样式"构建程序.也就是说,我基本上在开始时定义了很多函数,然后再应用这些函数.这导致一系列嵌套函数调用,其中我键入:
...等等.
对于函数被"管道"在一起的情况,一个函数的输出是下一个函数的参数(通常是第一个,但不总是),其输出是下一个函数的参数,并且是无限的.在前缀表示法中,如果您从左到右键入此序列,则键移动可能非常突然.例如,你将如何键入以下[Python]示例的第二行(~mul~是乘法,~truediv~是除法)?
from operator import add, mul, truediv
print(truediv(mul(add(1,1),2),4))
Run Code Online (Sandbox Code Playgroud)
如果我必须线性地编写相同的操作集(从左到写,没有跳转),我更可能使用函数组合的表示法.基于我之前在Python中的示例,我可能会写
from functional import foldr, compose, partial, flip
print(foldr(compose,add,(partial(mul,2),partial(flip(truediv),4)))(1,1))
Run Code Online (Sandbox Code Playgroud)
我认为这是因为我将每个函数与它自己的参数相关联,并且更喜欢连续输入它们,而不是在第一个函数的参数列表完成之前将参数填充到另一个函数(因为需要键入第一个示例)从左到右).
我注意到了这一点,因为我很长一段时间以来一直是emacs用户,并且最近才尝试过viper/vimpuse和vim.在emacs中,我可能会做类似的事情
...等等,偶尔使用Mb,Mf,M-DEL(后向单词,前向单词,后向单词),如果我搞砸或遗忘某些东西.
我最近在vim中发现了Co,这是一个救星 - 但我发现相同的键是
......其余的; 后向词,前向词和后向词 - 等同词将是Co b和Co w,以及Cw.
所以这让我想到要在vim中编程,我可能需要增加一个更大的工作内存,这样我可以暂停构建一个函数,因为我填写另一个函数,依此类推.另外,在构建文本文档时,我发现即使在完成一个完整的思考之前我也经常编辑(杀死,复制,猛拉),这对于vim的"保持正常模式,插入文本的突发"的操作风格来说是不太合适的. -mode,并回到正常模式",这似乎假设我能够在我进入插入模式的过程中产生值得编辑的东西.为了使用vim,我发现在打字时我会考虑更多,以减少模式之间切换的频率.这是因为我自然是痉挛性的,或者一旦我掌握或提出适当范围的肌肉记忆的vim关键命令,我就会不再想他们了
如果你在emacs和vim中编程,你是否发现自己在每个编辑器中以不同的方式思考和构建程序和文本块?