小编ali*_*i_m的帖子

如何grep和替换

我需要递归搜索目录中所有文件和子目录中的指定字符串,并将此字符串替换为另一个字符串.

我知道找到它的命令可能如下所示:

grep 'string_to_find' -r ./*
Run Code Online (Sandbox Code Playgroud)

但是如何string_to_find用另一个字符串替换每个实例呢?

linux grep replace

228
推荐指数
7
解决办法
30万
查看次数

Matplotlib 2子图,1个Colorbar

我花了很长时间研究如何让两个子图共享相同的y轴,并在Matplotlib中共享两个单色条.

正在发生的事情是,当我打电话给colorbar()在任一功能subplot1或者subplot2,它会自动缩放的情节使得彩条加的情节会适合进入"插曲"包围盒内部,造成两个并排侧地块是两个非常不同的大小.

为了解决这个问题,我尝试创建了第三个子图,然后我将其修改为不存在只有一个颜色条存在的图.唯一的问题是,现在这两个地块的高度和宽度是不均匀的,我无法弄清楚如何使它看起来没问题.

这是我的代码:

from __future__ import division
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import patches
from matplotlib.ticker import NullFormatter

# SIS Functions
TE = 1 # Einstein radius
g1 = lambda x,y: (TE/2) * (y**2-x**2)/((x**2+y**2)**(3/2)) 
g2 = lambda x,y: -1*TE*x*y / ((x**2+y**2)**(3/2))
kappa = lambda x,y: TE / (2*np.sqrt(x**2+y**2))

coords = np.linspace(-2,2,400)
X,Y = np.meshgrid(coords,coords)
g1out = g1(X,Y)
g2out = g2(X,Y)
kappaout = kappa(X,Y)
for i in range(len(coords)):
    for …
Run Code Online (Sandbox Code Playgroud)

python matplotlib colorbar subplot

207
推荐指数
12
解决办法
17万
查看次数

我如何捕获一个numpy警告,就像它是一个例外(不仅仅是测试)?

我必须在Python中为我正在做的项目制作拉格朗日多项式.我正在做一个重心的样式,以避免使用显式的for循环而不是Newton的分割差异样式.我遇到的问题是我需要将除法除以零,但Python(或者可能是numpy)只是使它成为警告而不是正常的异常.

所以,我需要知道的是抓住这个警告,好像它是一个例外.我在本网站上发现的相关问题没有按照我需要的方式回答.这是我的代码:

import numpy as np
import matplotlib.pyplot as plt
import warnings

class Lagrange:
    def __init__(self, xPts, yPts):
        self.xPts = np.array(xPts)
        self.yPts = np.array(yPts)
        self.degree = len(xPts)-1 
        self.weights = np.array([np.product([x_j - x_i for x_j in xPts if x_j != x_i]) for x_i in xPts])

    def __call__(self, x):
        warnings.filterwarnings("error")
        try:
            bigNumerator = np.product(x - self.xPts)
            numerators = np.array([bigNumerator/(x - x_j) for x_j in self.xPts])
            return sum(numerators/self.weights*self.yPts) 
        except Exception, e: # Catch division by 0. Only possible in 'numerators' array
            return yPts[np.where(xPts …
Run Code Online (Sandbox Code Playgroud)

python warnings numpy exception divide-by-zero

151
推荐指数
4
解决办法
10万
查看次数

为什么在导入numpy后多处理只使用一个核心?

我不确定这是否更像是一个操作系统问题,但我想我会问这里,以防任何人从Python的结尾有一些见解.

我一直在尝试使用一个CPU密集型for循环joblib,但是我发现不是将每个工作进程分配给不同的核心,我最终将它们全部分配到同一个核心而没有性能提升.

这是一个非常简单的例子......

from joblib import Parallel,delayed
import numpy as np

def testfunc(data):
    # some very boneheaded CPU work
    for nn in xrange(1000):
        for ii in data[0,:]:
            for jj in data[1,:]:
                ii*jj

def run(niter=10):
    data = (np.random.randn(2,100) for ii in xrange(niter))
    pool = Parallel(n_jobs=-1,verbose=1,pre_dispatch='all')
    results = pool(delayed(testfunc)(dd) for dd in data)

if __name__ == '__main__':
    run()
Run Code Online (Sandbox Code Playgroud)

...这是我在htop脚本运行时看到的内容:

HTOP

我在一台4核的笔记本电脑上运行Ubuntu 12.10(3.5.0-26).显然joblib.Parallel是为不同的工作者生成单独的进程,但有没有办法让这些进程在不同的内核上执行?

python linux numpy multiprocessing blas

121
推荐指数
3
解决办法
3万
查看次数

无法在virtualenv中"将matplotlib.pyplot导入为plt"

我正在虚拟环境中使用flask.我能够用pip安装matplotlib,我可以import matplotlib在Python会话中.但是,当我导入它时

matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

>>> import matplotlib.pyplot as plt

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/pyplot.py", line 109, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
    globals(),locals(),[backend_name],0)
  File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py", line 24, in <module>
    from matplotlib.backends import _macosx
RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a …
Run Code Online (Sandbox Code Playgroud)

python macos matplotlib virtualenv flask

66
推荐指数
4
解决办法
4万
查看次数

使用Colormaps在matplotlib中设置线条的颜色

如何使用colormap(比如jet)在运行时使用标量值设置matplotlib中一行的颜色?我在这里尝试了几种不同的方法,我觉得我很难过.values[]是一系列标量.曲线是一组1-d数组,标签是文本字符串数组.每个阵列具有相同的长度.

fig = plt.figure()
ax = fig.add_subplot(111)
jet = colors.Colormap('jet')
cNorm  = colors.Normalize(vmin=0, vmax=values[-1])
scalarMap = cmx.ScalarMappable(norm=cNorm, cmap=jet)
lines = []
for idx in range(len(curves)):
    line = curves[idx]
    colorVal = scalarMap.to_rgba(values[idx])
    retLine, = ax.plot(line, color=colorVal)
    #retLine.set_color()
    lines.append(retLine)
ax.legend(lines, labels, loc='upper right')
ax.grid()
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

63
推荐指数
4
解决办法
15万
查看次数

Rpy2,pyrserve和PypeR如何比较?

我想从Python程序中访问R. 我知道Rpy2,pyrserve和PypeR.

这三种选择有哪些优点或缺点?

python r rpy2 pyrserve pyper

56
推荐指数
4
解决办法
2万
查看次数

numpy中的非重复随机数

我的问题是:如何在numpy中生成非重复的随机数?

list = np.random.random_integers(20,size=(10))
Run Code Online (Sandbox Code Playgroud)

random numbers numpy non-repetitive

56
推荐指数
3
解决办法
5万
查看次数

R编程语言的Python接口

我对R很新,而且几乎习惯了python.我写R代码并不是那么舒服.我正在寻找R的python接口,它允许我以pythonic方式使用R包.

我做了谷歌研究,发现很少有可以做到这一点的软件包:

但不确定哪一个更好?哪个贡献者更多,更积极地使用?

请注意我的主要要求是访问R包的pythonic方式.

python r rpy2 pyrserve pyper

48
推荐指数
2
解决办法
5万
查看次数

如何检索NumPy随机数生成器的当前种子?

以下导入NumPy并设置种子.

import numpy as np
np.random.seed(42)
Run Code Online (Sandbox Code Playgroud)

但是,我对设置种子不感兴趣,而是更多地阅读它.random.get_state()似乎没有包含种子.该文件并没有表现出明显的答案.

我如何检索当前使用的种子numpy.random,假设我没有手动设置它?

我想使用当前种子来继承下一个进程的迭代.

python random numpy mersenne-twister random-seed

48
推荐指数
3
解决办法
2万
查看次数