我想检查我的所有字符串是否都存在于文本文件中.它们可以存在于同一条线上或不同的线上.部分匹配应该没问题.像这样:
...
string1
...
string2
...
string3
...
string1 string2
...
string1 string2 string3
...
string3 string1 string2
...
string2 string3
... and so on
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我们可以用正则表达式代替字符串.
例如,以下代码检查文件中是否存在任何字符串:
if grep -EFq "string1|string2|string3" file; then
# there is at least one match
fi
Run Code Online (Sandbox Code Playgroud)
如何检查是否所有这些都存在?由于我们只对所有匹配项的存在感兴趣,因此我们应该在所有字符串匹配后立即停止读取文件.
是否有可能做到这一点,而不必调用grep多次(不会标尺时输入文件较大,或者如果我们有一个大量的字符串相匹配),或使用工具,如awk或python?
此外,是否有一个字符串的解决方案可以很容易地扩展为正则表达式?
我正在努力使用pyinstaller,每当我使用kivy GUI构建这个特定的脚本并在构建之后运行.exe时我会得到致命的错误,它无法执行脚本.我通过cmd运行它,它给我错误:IOError: [Errno 2] No such file or directory: 'main.kv'
我尝试在启动构建时使用--add-data添加.kv文件以及mdb和dsn文件(在脚本中使用pypyodbc),但这样做我收到错误:( unrecognized arguments: --add-data'main.kv'其余的指定文件为--add-data follow)有没有解决方案或替代方法?
我不能再使用conda实用程序了。我多年来一直定期使用它,但是最近,因为我安装了python模块scp(使用命令conda install scp,我不知道它是否重要)而没有任何明显的异常,所以我在使用conda(conda安装…,conda更新…,conda卸载…,…,消息始终相同):
Solving environment: failed
# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<
Traceback (most recent call last):
File "/Users/steph/anaconda/lib/python3.5/site-packages/conda/exceptions.py", line 819, in __call__
return func(*args, **kwargs)
File "/Users/steph/anaconda/lib/python3.5/site-packages/conda/cli/main.py", line 78, in _main
exit_code = do_call(args, p)
File "/Users/steph/anaconda/lib/python3.5/site-packages/conda/cli/conda_argparse.py", line 77, in do_call
exit_code = getattr(module, func_name)(args, parser)
File "/Users/steph/anaconda/lib/python3.5/site-packages/conda/cli/main_update.py", line 14, in execute
install(args, parser, 'update')
File "/Users/steph/anaconda/lib/python3.5/site-packages/conda/cli/install.py", line 235, in install
force_reinstall=context.force,
File "/Users/steph/anaconda/lib/python3.5/site-packages/conda/core/solve.py", line 506, in solve_for_transaction
force_remove, force_reinstall)
File "/Users/steph/anaconda/lib/python3.5/site-packages/conda/core/solve.py", line 439, in solve_for_diff …Run Code Online (Sandbox Code Playgroud) 我没有使用PyMc3将属于类实例的方法作为确定性函数.你能告诉我怎么做吗?
为简单起见,我的案例总结如下,并附有一个简单的例子.实际上,我的约束是一切都是通过GUI完成的,像'find_MAP'这样的动作应该在链接到pyqt按钮的方法中.
我想在数据点上安装函数'FunctionIWantToFit'.问题,以下代码:
import numpy as np
import pymc3 as pm3
from scipy.interpolate import interp1d
import theano.tensor as tt
import theano.compile
class cprofile:
def __init__(self):
self.observed_x = np.array([0.3,1.4,3.1,5,6.8,9,13.4,17.1])
self.observations = np.array([6.25,2.75,1.25,1.25,1.5,1.75,1.5,1])
self.x = np.arange(0,18,0.5)
@theano.compile.ops.as_op(itypes=[tt.dscalar,tt.dscalar,tt.dscalar],
otypes=[tt.dvector])
def FunctionIWantToFit(self,t,y,z):
# can be complicated but simple in this example
# among other things, this FunctionIWantToFit depends on a bunch of
# variables and methods that belong to this instance of the class cprofile,
# so it cannot simply be put outside the …Run Code Online (Sandbox Code Playgroud) python使用的gcc版本未更新.问题有点类似于这个问题,但不幸的是答案并没有帮助:
我正在使用centOS 6.5并安装anaconda 2.
已经使用这种方式更改了默认GCC的版本
$ sudo yum install centos-release-scl
$ sudo yum install devtoolset-3-toolchain
$ echo "scl enable devtoolset-3 bash">>~/.bash_profile
$ scl enable devtoolset-3 bash
Run Code Online (Sandbox Code Playgroud)
并且还将/ usr/bin/gcc中的gcc更改为与devtoolset-3中的新gcc链接
我用的时候
$ gcc -v
Run Code Online (Sandbox Code Playgroud)
信息就像
gcc version 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC)
Run Code Online (Sandbox Code Playgroud)
但是当我键入python时它仍然显示
Python 2.7.13 |Anaconda 4.3.1 (64-bit)| (default, Dec 20 2016, 23:09:15)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Run Code Online (Sandbox Code Playgroud) pymc3 中 find_MAP 的返回值是什么?
pymc3.Normal 和 pymc3.Uniform 变量似乎并不相同:对于 pymc3.Normal 变量, find_MAP 返回一个看起来像最大后验概率的值。但是对于 pymc3.Uniform 变量,我在变量名称中添加了一个“_interval”后缀,并且我在文档中的任何地方都找不到返回值的含义(这可能看起来很荒谬,甚至不在物理范围内) .
例如:
import numpy as np
import pymc3 as pm3
# create basic data such as obs = (x*0.95)**2+1.1+noise
x=np.arange(10)+1
obs=(x*0.95)**2+np.random.randn(10)+1.1
# fitting the model y=a(1*x)**2+a0 on data points
with pm3.Model() as model:
a0 = pm3.Uniform("a0",0,5)
a1 = pm3.Normal("a1",mu=1,sd=1)
a2 = pm3.Deterministic('a2',(x*a1)**2+a0)
hypothesis = pm3.Normal('hypothesis', mu=a2, sd=0.1, observed=obs)
start = pm3.find_MAP()
print('start: ',start)
Run Code Online (Sandbox Code Playgroud)
返回:
Optimization terminated successfully.
Current function value: 570.382509
Iterations: 13
Function evaluations: 17 …Run Code Online (Sandbox Code Playgroud) 现在是否有一个简单的协议来从 python 3.5+ 构建 .exe,使用模块 pyqtgraph、qt5、theano、pymc3、numpy、scipy、os 和 sys,并打开一个存储在“.ui”文件中的简单 GUI?我浪费了几个小时,最终没能做出一个(w7-64 位)。帮助 !
py2exe 的初步失败:我首先为 python 3 安装了 py2exe,但事实证明这与我的 python 3.6 不兼容,所以我降级到 python 3.5……得到了一堆错误。然后我去了论坛并尝试了建议的治疗方法但失败了(我对 Windows 感到不安),另一种选择是降级到 python 3.4……所以我降级到 python 3.4 以得到一个关于缺少“msvcr100.dll”的错误,我尝试在论坛上安装以下说明,但默认情况下我没有修改系统目录的权限......当我最终获得此权限时,结果证明“regsvr32”命令失败(这不是 32 位的吗?但是没有'regsvr64'...)。以下情节描述如下。
2017 年 8 月 23 日下午 1 点更新:
我也按照建议尝试了 pyinstaller 但它失败了(请参阅我的相关问题从 python 3 脚本中为 Windows 构建 .exe 使用 pyinstaller 导入 theano)
我也尝试过 cx_freeze 但它失败了(请参阅我的相关问题从 python 3 脚本为 Windows 构建 .exe)
我也试过 pynsist 但它失败了(与上面的链接相同)
下一步是什么 ?
9 月 2 日下午 2 点更新:
经过多集之后,我最终设法使用 pyinstaller 构建了一个 .exe。 …
我使用Qt Designer设计了一个GUI,需要将它分发到许多具有不同分辨率的计算机上.我的问题是GUI不能在不同的屏幕上正确缩放:主窗口可能被截断,一些表也是如此,字体的大小不同.我在论坛上发现了许多关于使用布局来正确调整大小的注意事项,但我必须滥用它们,因为我已经使用了布局而没有解决问题.我尝试了很多东西,但我没有看到诀窍.你能告诉我我做错了什么吗?
这是同一页面的损坏视图,同一台计算机具有不同的分辨率:
差异是可以接受的,因为它只是"更复杂的模型"标签的截断.但这是Windows 7上的视图:
这是我的Qt Designer界面的视图(不要犹豫,要求更多信息,因为我不知道什么是相关的): 
ui文件在这里:https://github.com/steph2016/profiles/blob/master/cprofiles.ui.
1月12日更新.
我只是强调:
我正在尝试在Windows 7上安装Theano以进行深度学习.我的笔记本电脑没有Nvidia GPU.那么这个问题有什么解决方案吗?
如您所知,python 中的 lmfit 模块可以方便地扩展 scipy.optimize 函数的功能。
然而,我没有发现在我看来必要的东西:选择步长的可能性(用于偏导、参数空间中 chi2 的计算等......)。我曾经在 IDL 下安装时玩过这些步骤,我很惊讶我在 python 下没有找到这个。
很明显,默认的步长非常小,在拟合粗略模型时可能会导致恒定的 chi2……因此很尴尬。
所以我的问题是:在 python 下拟合时如何选择步骤?