小编nye*_*e17的帖子

最有效的方法来反转numpy数组

信不信由你,在分析我当前的代码之后,numpy数组reversion的重复操作占用了运行时间的一大块.我现在拥有的是基于视图的常见方法:

reversed_arr = arr[::-1]
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以更有效地做到这一点,还是仅仅因为我对不切实际的numpy表现的痴迷而产生的错觉?

python numpy

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

如何将pylab图保存到可以读入PIL图像的内存文件中?

PIL的新手,但希望得到一个快速的解决方案.以下是我的第一个从未奏效的镜头:

import cStringIO
import pylab
from PIL import Image
pylab.figure()
pylab.plot([1,2])
pylab.title("test")
buffer = cStringIO.StringIO()
pylab.savefig(buffer, format='png')
im = Image.open(buffer.read())
buffer.close()
Run Code Online (Sandbox Code Playgroud)

错误说,

Traceback (most recent call last):
  File "try.py", line 10, in <module>
    im = Image.open(buffer.read())
  File "/awesomepath/python2.7/site-packages/PIL/Image.py", line 1952, in open
    fp = __builtin__.open(fp, "rb")
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我不希望解决方案涉及额外的包,谢谢.

python matplotlib python-imaging-library

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

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

如何从vi中的光标位置开始插入一个空格块?

假设我有下面的文本,光标停留在第一个A,

AAAA
BBB
CC
D
Run Code Online (Sandbox Code Playgroud)

如何在每条线的前面添加空格以使其成为可能,如果可以即时指定空格列数,那将是很好的,例如,这里有两个.

  AAAA
  BBB
  CC
  D
Run Code Online (Sandbox Code Playgroud)

我想有一种方法可以在视觉模式下快速完成,但任何想法?

目前我正在以可视模式复制第一列文本两次,并将整个两列替换为空格,这涉及> 5次击键,太麻烦了.

约束:

很抱歉,我没有明确说明问题,可能会产生一些混淆.

目标只是较大文件的一部分,因此如果A可以指定从第一个开始的行数和列数,则会很好.

编辑:

感谢@DeepYellow和@Johnsyweb,显然>}并且>ap都是我不知道的很好的提示,在我澄清我的问题的答案的具体要求之前它们都可以是有效的答案,但无论如何,@ luser droog答案是唯一可行的答案.谢谢大家!

vi vim

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

如何将一个小的numpy数组"嵌入"一个大型numpy数组的预定义块?

我有一个小的NXN阵列"块",我想插入一个大阵列"墙"的指定区域(即"开始"的对角线区域).有一种有效的方法来存档吗?

wall[start:start+N][start:start+N] = block[:][:]
Run Code Online (Sandbox Code Playgroud)

目前我正在做的只是:

for i in xrange(N):
    wall[start+i][start:start+N] = block[i][:]
Run Code Online (Sandbox Code Playgroud)

python numpy

23
推荐指数
2
解决办法
1万
查看次数

如何绘制相交的平面?

我想使用matplotlib或多或少地绘制我下面附着的图形,其中包括两个相交的平面,其中正确的透明度表示它们的相对方向,以及两个平面中的圆和矢量以2D投影.

我不确定是否有现成的包,这样做,任何提示?图片来源:M Strassler

python matplotlib

21
推荐指数
2
解决办法
8393
查看次数

有没有办法直接将python输出发送到剪贴板?

例如,如果python脚本将吐出一个字符串,该字符串给出了我将在运行脚本后立即编辑的新编写文件的路径,那么将它直接发送到系统剪贴板而不是STDOUT.

python linux clipboard

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

如何将带有图像的reStructuredText文件转换为markdown?

我有第一个文件包含像

.. figure:: examples/foo.png 
    :scale: 80%

    Fig. 1 : Illustration of the awesomeness of stackoverflow
Run Code Online (Sandbox Code Playgroud)

现在我希望将此文件转换为markdown.我试过用pandoc,

pandoc -s -w rst --toc foo.rst -o foo.md
Run Code Online (Sandbox Code Playgroud)

但输出文件foo.md似乎忽略了图形包含线.那么,如何在不失去数字真棒的情况下转换为markdown文件呢?谢谢

markdown restructuredtext pandoc

13
推荐指数
1
解决办法
3998
查看次数

如何使用LaTeX数学符号标记Mayavi中的轴?

我在python脚本中导入mayavi来显示一些3D数据集,事实证明以下天真轴标签不起作用

from mayavi import mlab
axes =mlab.axes(xlabel='$\alpha$', ylabel='$\beta$', zlabel='$\sigma$')
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我无法从谷歌或用户手册中找到解决方案.

python mayavi

8
推荐指数
2
解决办法
2782
查看次数

将python回调函数传递给Fortran子例程的开销是多少?

我只是使用F2PY将Fortran 90子程序包装到python中.这里的细微之处在于Fortran子例程aslo将python回调函数作为其参数之一:

SUBROUTINE f90foo(pyfunc, a)
real(kind=8),intent(in) :: a
!f2py intent(callback) pyfunc
external pyfunc
!f2py real*8 y,x
!f2py y = pyfunc(x)

!*** debug begins***
print *, 'Start Loop'
do i=1,1000
  p = pyfunc(a)
end do
total = etime(elapsed)
print *, 'End: total=', total, ' user=', elapsed(1), ' system=', elapsed(2)
stop
!*** debug ends  ***
Run Code Online (Sandbox Code Playgroud)

pyfunc是我的python代码中其他地方定义的python函数.包装工作正常,但运行上面的包装版本,我得到的时间大约是我使用纯python的5倍,如下所示,

def pythonfoo(k):
    """ k: scalar 
        returns: scalar
    """
    print('Pure Python: Start Loop')
    start = time.time()
    for i in xrange(1000):
        p = pyfunc(k)
    elapsed = …
Run Code Online (Sandbox Code Playgroud)

python optimization fortran wrapper f2py

8
推荐指数
1
解决办法
1464
查看次数