我经常使用gvim和vim来查看顶行是标题的数据表.有没有办法在浏览表格的其余部分时显示这一行?对于第一列是行标题的情况的Ditto列.
编辑:我接受了一个很好的答案(还有其他人)来展示最高专栏.
相当于我接受的答案的水平(第一行)是
:vert split
ctrl+w 5 |
Run Code Online (Sandbox Code Playgroud)
要么
ctrl+w v
ctrl+w 10 |
Run Code Online (Sandbox Code Playgroud)
能够做到这两点会很好,但显然这并不简单.
我正在尝试使用ghostscript将.ps文件转换为一系列.png文件,主要是因为我没有可容忍的ps查看器.
这是我用过的命令:
gs -dBATCH -dEPSCrop -dEPSFitPage -sDEVICE=png16m -r300 -dNOPAUSE -sOutputFile=neptune_111115_ob1-2_13pca_boloplots_%d.png neptune_111115_ob1-2_13pca_boloplots.ps
Run Code Online (Sandbox Code Playgroud)
(.ps文件是一个多页的附言).
输出部分偏离页面.我希望图像适合页面.
我可以包含示例文件,但它们非常大 - 是否有任何特定的.ps文件部分会有用吗?
我怀疑是.ps文件错误地指定了边界框,但是黑客攻击BB值没有任何影响..ps文件由IDL(ittvis'交互式数据语言)编写.我没有运行-dEPS*命令也尝试了上面的命令.
我想在更新后重新加载预览中的文件(.png,.pdf).如何实现这一目标?
在OS X 10.5和10.6中,它就像切换到预览一样简单 - 它会自动重新加载新文件.或者,您可以使用open -a Preview *.png或类似的东西.在10.7中,自动重新加载不起作用(参见本文).
我的第一次尝试是从命令行运行的applescript脚本:
/usr/bin/osascript -e 'tell application "Preview.app" to activate
tell application "Preview.app" to open "'$PWD/$*'"'
Run Code Online (Sandbox Code Playgroud)
这适用于单个文件,但由于显而易见的原因而无法使用多个文件.我做了一些研究,并尝试使用更复杂的Applecript涉及set和列表,但这会导致权限错误:

这是我使用的python脚本(我的bash脚本技能不符合字符串解析的任务):
#!/usr/bin/env python
import optparse
import os
parser=optparse.OptionParser()
options,args = parser.parse_args()
pwd = os.getcwd()
cmd = '/usr/bin/osascript -e '
scriptcmd = "tell application \"Preview.app\" to activate\n"
flist = [ fn if fn[0]=='/' else pwd+"/"+fn for fn in args]
scriptcmd += "set myList to {\"%s\"}\n" % ( '","'.join(flist) )
scriptcmd += …Run Code Online (Sandbox Code Playgroud) 我刚刚获得了最新的mercurial并开始添加大文件.
但是,现在我无法推动变化:
abort: ssh://hg@bitbucket.org/mysite/bitbucket.org does not appear to be a largefile store
Run Code Online (Sandbox Code Playgroud)
我怎么才能推送到bitbucket呢?我有多个提交,其中包括两个大型文件和常规代码提交.我只是forget添加了我添加的所有大文件,但是如果不还原所有真正的提交,我怎么能这样做呢?
我遇到FloatingPointError: invalid value encountered in subtract了一段测试代码。在没有对代码本身进行任何更改的情况下开始引发异常,因此我在理解它方面遇到了很多麻烦。
我的问题:导致invalid value encountered in subtract异常的原因是什么?为什么在不同的python + numpy安装上它会表现不同?
细节:
这MWE并没有提出一个FloatingPointError:
>>> import numpy as np
>>> np.__version__
'1.6.1'
>>> x = np.arange(5,dtype='float64')
>>> y = np.ones(5,dtype='float64')
>>> x[2]=np.nan
>>> x-y
# array([ -1., 0., nan, 2., 3.])
Run Code Online (Sandbox Code Playgroud)
但是,在一段代码的深处,我减去了两个np.float64 ndarray对象,并得到一个浮点异常。导致异常的数组包含一些非常大和很小的数字(例如1e307和1e-307)和一些nans,但是我没有对这些数字进行任何组合来单独进行异常测试。
更令人不安的是,我有大量的Jenkins测试网格,它们使用numpy,matplotlib,python和scipy的许多版本运行完全相同的代码,但没有一个引发此异常。我现在迷路了-我不知道是否存在错误,或者是否存在错误,如何进行跟踪。
如果您对病态好奇,可以考虑使用的代码为pyspeckit,并且测试在第20行失败test_hr2421.py。
编辑:后续操作-我认为这np.seterr(invalid='raise')是一个小片段:在我正在导入的模块中,特别是在pymc中被调用,并且pull请求自此阻止了此更改。
如果您尝试virtualenv使用环境变量PYTHONDONTWRITEBYTECODE=true集运行,则会出现以下错误:
The PYTHONDONTWRITEBYTECODE environment variable is not compatible with setuptools. Either use --distribute or unset PYTHONDONTWRITEBYTECODE.
为什么setuptools需要能够写字节码?
我不特别喜欢有.pyc文件,所以我喜欢防止它被写入.
(我不是问如何解决这个问题,这是非常容易:只要添加PYTHONDONTWRITEBYTECODE=""在需要的标志被取消设置的任何命令的开头,或取消其全球)
np.percentile(ndarr, axis=0)对包含NaN值的数据有一个相当快速的方法吗?
因为np.median,相应的bottleneck.nanmedian(https://pypi.python.org/pypi/Bottleneck)非常好.
我提出的最好的百分位数是不完整的,目前是不正确的,是:
from bottleneck import nanrankdata, nanmax, nanargmin
def nanpercentile(x, q, axis):
ranks = nanrankdata(x, axis=axis)
peak = nanmax(ranks, axis=axis)
pct = ranks/peak / 100. # to make a percentile
wh = nanargmin(abs(pct-q),axis=axis)
return x[wh]
Run Code Online (Sandbox Code Playgroud)
这不起作用; 真正需要的是采取第n个元素的一些方法axis,但我没有找到这样做的numpy切片技巧.
"合理快速"意味着比循环索引更好,例如:
q = 40
x = np.array([[[1,2,3],[6,np.nan,4]],[[0.5,2,1],[9,3,np.nan]]])
out = np.empty(x.shape[:-1])
for i in range(x.shape[0]):
for j in range(x.shape[1]):
d = x[i,j,:]
out[i,j] = np.percentile(d[np.isfinite(d)], q)
print out
#array([[ 1.8, 4.8],
# [ …Run Code Online (Sandbox Code Playgroud) 我有一些代码需要的行为相同独立numpy的版本,但基本np.nansum的功能已经改变行为,从而np.nansum([np.nan,np.nan])是0.0在1.9和NaN1.8。<=1.8 行为是我更喜欢的行为,但更重要的是我的代码对 numpy 版本具有健壮性。
棘手的是,代码将任意 numpy 函数(通常是一个np.nan[something]函数)应用于 ndarray。有什么方法可以强制新的或旧的 numpynan[something]函数符合对它们进行猴子修补的旧的或新的行为?
我能想到的一个可能的解决方案是类似outarr[np.allnan(inarr, axis=axis)] = np.nan,但没有np.allnan功能 - 如果这是最好的解决方案,那么最好的实现是np.all(np.isnan(arr), axis=axis)(只需要支持 np>=1.7,但这可能没问题)?
我最近收到此消息:
This is not an active repository
Run Code Online (Sandbox Code Playgroud)
对于活动的且具有较长构建历史的存储库;来自github上一个版本的链接将我带到了这个地方。是什么原因导致以前运行状况良好的存储库发生这种情况?
在 gnu-screen 会话中运行 ipython 5 和 6 时,粘贴多行不起作用。
如果我在正常的终端会话中运行 ipython,当我粘贴 3 个由换行符分隔的导入行时,我会看到以下内容:
In [1]: import datetime
...: import os
...: import glob
...:
...:
In [2]:
Run Code Online (Sandbox Code Playgroud)
如果我在 gnu-screen 会话中做同样的事情,我会看到:
In [1]: import datetime
In [2]:
Run Code Online (Sandbox Code Playgroud)
即,结果在第一个换行符处被截断。
是否有任何 ipython 或屏幕配置项可用于解决此问题并在两个终端中实现相同的粘贴行为?
编辑:此问题显然已在 ipython 邮件列表的某处报告,如在此问题中所引用。
numpy ×3
python ×3
applescript ×1
bitbucket ×1
ghostscript ×1
gnu-screen ×1
ipython ×1
macos ×1
mercurial ×1
osx-lion ×1
postscript ×1
preview ×1
setuptools ×1
travis-ci ×1
vim ×1
virtualenv ×1