计算一个值的余弦会得到略微不同的结果.如何检查这种差异是否在机器精度范围内?
import math
math.cos(60.0/180.0*math.pi)
-> 0.5000000000000001
import numpy
numpy.cos(60.0/180.0*numpy.pi)
-> 0.50000000000000011
Run Code Online (Sandbox Code Playgroud) 我在emacs缓冲区中使用运行和交互式ipython shell ipython.el
.我想知道是否有办法清除屏幕?由于它没有在终端上运行,所以import os; os.system('CLS')
技巧不起作用.谢谢.
示例数据集(从更大的矩阵中随机抽取行)
import numpy as np
test = [[np.nan, np.nan, 0.217, 0.562],
[np.nan, np.nan, 0.217, 0.562],
[0.269, 0.0, 0.217, 0.562],
[np.nan, np.nan, 0.217, -0.953],
[np.nan, np.nan, 0.217, -0.788],
[0.75, 0.0, 0.217, 0.326],
[0.207, 0.0, 0.217, 0.814],
[np.nan, np.nan, 0.217, 0.562],
[np.nan, np.nan, 0.217, -0.022],
[np.nan, np.nan, 0.217, 0.562],
[np.nan, np.nan, 0.217, -0.953],
[np.nan, np.nan, 0.217, -0.953],
[0.078, 0.0, 0.217, -0.953],
[np.nan, np.nan, 0.217, -0.953],
[0.078, 0.0, 0.217, 0.562]]
maskedarr = np.ma.array(test)
np.ma.cov(maskedarr,rowvar=False,allow_masked=True)
[[-- -- -- --]
[-- -- -- --]
[-- …
Run Code Online (Sandbox Code Playgroud) 在base
图形中,我们可以通过使用axis
和side
参数轻松地在图的不同侧面添加刻度标记:
par(tck = 0.025)
plot(1:10)
axis(side = 3, labels = FALSE)
axis(side = 4, labels = FALSE)
Run Code Online (Sandbox Code Playgroud)
如何在顶部和右侧镜像x和y轴刻度ggplot2
?有annotation_logticks
可以做到这一点,但似乎只适用于对数标度(因为函数的名称适用).对于线性刻度,是否有类似的简单方法?
我在OS X Leopard上编译了Emacs 23,我很喜欢它.但是当我从Aquamancs切换时,我注意到的一件事是我无法再访问我在.bash_profile文件中指定的环境变量.例如,我有一条线:
export WORK=/Users/myname/Documents/otherpaths/Work
Run Code Online (Sandbox Code Playgroud)
所以要打开文件我可以输入迷你缓冲区:
Find file: $WORK/projectname/filename.txt
Run Code Online (Sandbox Code Playgroud)
或类似的东西,以省去键入整个文件路径的麻烦.
我发现了一些关于从这个站点编辑〜/ .MacOSX/environment.plist,.profile和.login文件的说明:
http://www.emacswiki.org/emacs/CarbonEmacsPackage
但似乎不起作用,我不确定它是否适用.我想知道是否有人知道解决方案?在期待中感谢,
-Stephen
我在项目期间添加了$ Rev $标签并在一组文件上调用了svn propset.显示的版本号是$ Rev:8 $,但在结账时它表示我在修订版本10.我认为$ Rev $计数器不反映实际的修订版号,但是自svn propset被调用后的修订版本?谁知道我怎么能同步这两个?
我有一个如下所示的数据集:
DataFrame <- data.frame(x=runif(25),y=runif(25),
z=sample(letters[1:4],25,rep=TRUE))
Run Code Online (Sandbox Code Playgroud)
并且使用Lattice软件包,我可以使用以下行创建具有相等轴(使用1:1线穿过中心)的散点图:
xyplot(y ~ x | z, data=DataFrame,
scales=list(relation="free"),
prepanel=function(x,y,...) {
rg <- range(na.omit(c(x,y)))
list(xlim=rg,ylim=rg)
},panel=function(x,y,...) {
panel.abline(0,1)
panel.xyplot(x,y,...)
})
Run Code Online (Sandbox Code Playgroud)
在ggplot2中,我已经走到了这一步:
ggplot(data=DataFrame) + geom_point(aes(x=x,y=y)) +
facet_grid(~z,scales="free") + coord_equal(ratio=1) +
geom_abline(intercept=0,slope=1)
Run Code Online (Sandbox Code Playgroud)
但我不确定coord_equal()是否是我正在寻找的功能.什么可能是ggplot2中的等效函数调用?
如何在org-mode中链接到单独页面的一部分并将其链接到html中?例如,如果在文件file.org中,我有一个X部分的标签:
** Section X
#+LABEL: sec:X
Run Code Online (Sandbox Code Playgroud)
我可以[[sec:X][section X]]
在file.org中参考本节.我可以[[file:file.org][link to file.html]]
从外部文档链接到file.org (并在发布时自动链接到相应的html文件).但是在本文档之外,我不能将X部分称为[[file:file.org#sec:X][link to section X of file.html]]
因为部分标签被转换为数字(例如sec-3_1
).所以我必须链接到它[[file:file.html#sec-3_1][link to section X of file.html]]
,但这假设我知道sec:X
标签将转换为sec-3_1
...
(我使用的是用于org-publish-project
转换的默认函数.)
我读了一系列数字
np.array(f.read().split(),dtype=np.float64)
Run Code Online (Sandbox Code Playgroud)
然后我使用它将其转换为二维数组np.reshape()
.
在此之后,如何转换arr
为记录数组?我尝试了(类似)以下内容:
filename = 'unstructured-file.txt'
nfields = 3
names = ('r','g','b')
with open(filename,'r') as f:
arr = np.array(f.read().split(),dtype=np.float64)
arr = arr.reshape(-1,nfields)
out = np.array(arr,dtype=zip(names,['float64']*length(names))
Run Code Online (Sandbox Code Playgroud)
但是说 TypeError: expected a readable buffer object
有什么建议?
编辑:我想要做的主要是命名我的列.
代替
out = np.array(arr,dtype=zip(names,['float64']*length(names))
Run Code Online (Sandbox Code Playgroud)
如果我用这个,
out = np.core.records.fromrecords(arr.reshape(-1,nfields),names=','.join(names))
Run Code Online (Sandbox Code Playgroud)
我可以使用out['r']
等等,但是out.dtype.names
是无.到底是怎么回事?
EDIT2
非结构化文件看起来像
Some text
More text
100 1.000000E-01 46
-1.891701E+04 1.702921E+02 -2.323660E+04 4.547841E+03 -2.778444E+04
0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.149862E+04
1.753467E+02 3.410277E+03 -1.034898E+05 2.778692E+04 0.000000E+00
0.000000E+00 0.000000E+00 0.000000E+00 …
Run Code Online (Sandbox Code Playgroud) 如果我想永久更改numpy数组的数据类型,重新分配是最好的方法吗?
这是一个说明语法的示例:
import numpy as np
x = np.array([1],dtype='float')
x = x.view(dtype=('x','float"))
Run Code Online (Sandbox Code Playgroud)
但是,我更愿意更改"就地"更改数据类型.
有没有办法在适当的位置更改数组的dtype?或者这样的东西更好吗?:
x = x.view(dtype=('x',"float")).copy()
Run Code Online (Sandbox Code Playgroud)