我有一个我开始使用的环境,Anaconda并且我成功地在其中安装了一个模块.我知道,因为我可以跑python,然后import tensorflow.这也适用于通过ipython.问题是,我无法从我开始使用的笔记本中加载模块ipython notebook或jupyter(即使我从活动环境执行).
我怀疑它与设置有关,ipython但我不知道如何调试和解决问题.任何的想法?
编辑: 以下是我采取的步骤:
conda create --name tensorflowproblem python=2.7 创造一个环境source activate tensorflowproblemconda install --name tensorflowproblem jupyter 安装jupyterpip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl 安装 tensorflow的位置pip和jupyter:
$ which -a pip
/Users/dror/anaconda/envs/tensorflowproblem/bin/pip
$ which -a jupyter
/Users/dror/anaconda/envs/tensorflowproblem/bin/jupyter
Run Code Online (Sandbox Code Playgroud)
请注意该目录~/anaconda/envs/tensorflowproblem/lib/python2.7/site-packages/tensorflow存在.
此外,既python -c "import tensorflow"不会ipython -c "import tensorflow"产生任何错误.
按要求,也是出局
$ conda list -n tensorflowproblem
# packages in environment at …Run Code Online (Sandbox Code Playgroud) 我或多或少有以下设置.在~/path/to/my/packages我有两个包package1.m和package2.m.例如,每个包的大纲如下:
BeginPackage["package1`"]
Unprotect@@Names["package1`*"];
ClearAll@@Names["package1`*"];
Begin["`Private`"]
vecNorm[vec_?VectorQ]:=Module[{},Return[Sqrt[vec.vec]]];
End[]
Protect@@Names["package1`*"];
EndPackage[]
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是我想使用vecNormin package1.min中定义的package2.m.如何package1从内部加载(安全)package2?
目前,我手动加载两个包,如下所示:
SetDirectory[StringJoin[NotebookDirectory[], "packages"]];
Needs["package1`"]
Needs["package2`"]
Run Code Online (Sandbox Code Playgroud)
从保存的笔记本中~/path/to/my.我想手动加载只有 package2这反过来将会自动,安全地加载package1.一般来说,我想要一个尽可能少地改变mathematica路径等的解决方案.实现这一目标的最佳做法是什么?
PS:安全地我的意思是,在将来,当我定义package3哪些也将使用vecNorm并且将加载时package1,不会发生冲突.
我正在尝试找到以下循环的快捷方式.在开发mathematica的软件包时,一个是对.m文件代码进行更改,然后想要测试另一个笔记本中的更改.这是一个无限循环......
所以,我们有一个包package.m和一个test_package.nb测试完成的笔记本.目前,当我在.m文件中更改某些内容时,我必须:
Quit[]
Needs["package`"]
Run Code Online (Sandbox Code Playgroud)
在笔记本中为变化而变得可用,所以我可以测试它们.似乎没有Quit[]它不起作用.
是否有更短的方法来迭代这个开发循环?特别是避免戒烟?
后果
如果可以,我会接受ruebenko和Leonid的答案,因为两者都有帮助并解决了我的问题.然而,由于只有一个答案可以选择,我挑ruebenko的,由于是简单和容易-只需更改Needs到Get我克服了我的问题.尽管如此,Leonid的包装确实更加复杂,并且可能在一天结束时产生更好的结果,但它必须安装,装载等.
如何使用相同文件的两个提交之间的差异magit?
直接形成git一个可以做到这一点.但我不知道如何从内部做到这一点magit.从magit-status它看起来d并D返回整个存储库的差异.这对我来说是非常有问题的,因为存储库很大并且导致magit(并且反过来emacs)变得没有响应.有没有办法要求magit将搜索限制为只从存储库中的一个文件?
我也尝试过,在magit-status缓冲区里做: diff $start_commit..$end_commit -- path/to/file.这是有效的,但输出是一个简单的缓冲区,没有任何突出显示,也没有任何折叠选项......
通常,mathematica总是假定最常见的情况,即,如果我设置了一个函数
a[s_]:={a1[s],a2[s],a3[s]}
Run Code Online (Sandbox Code Playgroud)
并且想要计算它的标准Norm[a[s]],例如,它将返回:
Sqrt[Abs[a1[s]]^2 + Abs[a2[s]]^2 + Abs[a3[s]]^2]
Run Code Online (Sandbox Code Playgroud)
但是,如果我知道一切ai[s]都是真的,我可以调用:
Assuming[{a1[s], a2[s], a3[s]} \[Element] Reals, Simplify[Norm[a[s]]]]
Run Code Online (Sandbox Code Playgroud)
将返回:
Sqrt[a1[s]^2 + a2[s]^2 + a3[s]^2]
Run Code Online (Sandbox Code Playgroud)
这是我的期望.
例如,尝试派生a[s]然后(注意D)时会出现问题:
Assuming[{a1[s], a2[s], a3[s]} \[Element] Reals, Simplify[Norm[D[a[s],s]]]]
Run Code Online (Sandbox Code Playgroud)
再次返回一个涉及绝对值的结果 - 来自假设数字可能是虚数.
克服这个问题的方法是什么?我想定义一个实值函数,并使用它.也就是说,例如,我希望它的衍生物是真实的.
有没有办法org-mode标记区域(一个或几个单词)并使它们粗体/斜体?
目前,如果我想bar变成粗体,我必须在b添加之前移动点,然后在*之后导航点r并添加另一个*.我希望能够标记整个单词bar,点击类似的东西C-c C-f C-b(有人说过AUCTeX吗?)并获得*bar*.
我有很多标题org-mode:
* Tasks [/]
** TODO Foo
** TODO Bar
** DONE World
** DONE Abba
Run Code Online (Sandbox Code Playgroud)
我想按如下方式排序:
* Tasks [/]
** TODO Bar
** TODO Foo
** DONE Abba
** DONE World
Run Code Online (Sandbox Code Playgroud)
随着org-sort-entries我可以得到
* Tasks [/]
** DONE Abba
** TODO Bar
** TODO Foo
** DONE World
Run Code Online (Sandbox Code Playgroud)
(即字母顺序),或
* Tasks [/]
** TODO Foo
** TODO Bar
** DONE World
** DONE Abba
Run Code Online (Sandbox Code Playgroud)
(即根据状态分组).
换句话说,我想按字母顺序TODO对DONE项目和项目进行排序,但将它们保存在两个块中.我怎么能实现它?我想将整个标题集保存在同一个子树中!
我没有设法利用下面的建议.因此,我尝试使用下面提供的提示来提出我需要的解决方案.这是我的代码:
(defun drorata-sort-TODO-DONE-headings ()
(interactive) …Run Code Online (Sandbox Code Playgroud) 我想记录我python使用的脚本elasticsearch-py.特别是,我想要三个日志:
INFO和上面stdout的文件和文件.这是我到目前为止:
import logging
import logging.handlers
es_logger = logging.getLogger('elasticsearch')
es_logger.setLevel(logging.INFO)
es_logger_handler=logging.handlers.RotatingFileHandler('top-camps-base.log',
maxBytes=0.5*10**9,
backupCount=3)
es_logger.addHandler(es_logger_handler)
es_tracer = logging.getLogger('elasticsearch.trace')
es_tracer.setLevel(logging.DEBUG)
es_tracer_handler=logging.handlers.RotatingFileHandler('top-camps-full.log',
maxBytes=0.5*10**9,
backupCount=3)
es_tracer.addHandler(es_tracer_handler)
logger = logging.getLogger('mainLog')
logger.setLevel(logging.DEBUG)
# create file handler
fileHandler = logging.handlers.RotatingFileHandler('top-camps.log',
maxBytes=10**6,
backupCount=3)
fileHandler.setLevel(logging.INFO)
# create console handler
consoleHandler = logging.StreamHandler()
consoleHandler.setLevel(logging.INFO)
# create formatter and add it to the handlers
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
consoleHandler.setFormatter(formatter)
fileHandler.setFormatter(formatter)
# add …Run Code Online (Sandbox Code Playgroud) 是否有差异(在例如性能)进行比较时,shape和len?请考虑以下示例:
In [1]: import numpy as np
In [2]: a = np.array([1,2,3,4])
In [3]: a.shape
Out[3]: (4,)
In [4]: len(a)
Out[4]: 4
Run Code Online (Sandbox Code Playgroud)
快速运行时比较表明没有区别:
In [17]: a = np.random.randint(0,10000, size=1000000)
In [18]: %time a.shape
CPU times: user 6 µs, sys: 2 µs, total: 8 µs
Wall time: 13.1 µs
Out[18]: (1000000,)
In [19]: %time len(a)
CPU times: user 5 µs, sys: 1 µs, total: 6 µs
Wall time: 9.06 µs
Out[19]: 1000000
Run Code Online (Sandbox Code Playgroud)
那么,有什么不同,哪一个更pythonic?(我想用shape).
考虑以下三个DataFrame:
df1 = pd.DataFrame([[1,2],[4,3]])
df2 = pd.DataFrame([[1,.2],[4,3]])
df3 = pd.DataFrame([[1,'a'],[4,3]])
Run Code Online (Sandbox Code Playgroud)
以下是第二列的类型DataFrame:
In [56]: map(type,df1[1])
Out[56]: [numpy.int64, numpy.int64]
In [57]: map(type,df2[1])
Out[57]: [numpy.float64, numpy.float64]
In [58]: map(type,df3[1])
Out[58]: [str, int]
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,所有int的都是铸造的numpy.int64.精细.在第三种情况下,基本上没有铸造.但是,在第二种情况下,整数(3)被转换为numpy.float64; 可能因为其他数字是浮点数.
我怎样才能控制铸件?在第二种情况下,我希望有[float64, int64]或[float, int]作为类型.
使用可调用打印功能可以有一个替代方案来显示在这里.
def printFloat(x):
if np.modf(x)[0] == 0:
return str(int(x))
else:
return str(x)
pd.options.display.float_format = printFloat
Run Code Online (Sandbox Code Playgroud)