小编ccb*_*ney的帖子

连接JINJA2中的列表

如何在jinja2中连接两个列表变量?

例如

GRP1 = [1, 2, 3]
GRP2 = [4, 5, 6]

{# This works fine: #}
{% for M in GRP1 %}
    Value is {{M}}
{% endfor %}


{# But this does not: #}
{% for M in GRP1 + GRP2 %}
    Value is {{M}}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

所以,我试图使用+连接两个列表(就像在Python中一样),但事实证明它们不是列表,而是python xrange对象:

jijna2 error: unsupported operand type(s) for +: 'xrange' and 'xrange'
Run Code Online (Sandbox Code Playgroud)

有没有办法让我在同一个for循环中迭代GRP1和GRP2的串联?

python jinja2

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

Android位图:将透明像素转换为颜色

我有一个Android应用程序,可以将图像作为位图加载并在ImageView中显示.问题是图像看起来具有透明背景; 这会导致图像上的一些黑色文本在黑色背景下消​​失.

如果我将ImageView背景设置为白色,那种工作,但我在图像上得到了丑陋的大边框,它被拉伸以适合父级(实际图像在中间缩放).

所以 - 我想将位图中的透明像素转换为纯色 - 但我无法弄清楚如何做到这一点!

任何帮助将不胜感激!

谢谢克里斯

java android image

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

numpy.searchsorted与2D数组

我有这个numpy数组,其中每行中的值将始终排序并单调增加:

a = np.array([[1, 2, 3, 4, 8],
       [2, 5, 6, 7, 8],
       [5, 7, 11, 12, 13]])
Run Code Online (Sandbox Code Playgroud)

我想为每一行搜索以下值(未排序或单调):

b = np.array([4.5, 2.3, 11.6])
Run Code Online (Sandbox Code Playgroud)

这样我得到了答案:

[4, 1, 3]
Run Code Online (Sandbox Code Playgroud)

但是,searchsorted不支持这种情况(感觉它需要一个axis关键字).

对于一个非常大的阵列,我是否有一种有效的方法可以做到这一点?显然有一个for循环我可以索引数组a,b像这样:

for i in np.arange(np.alen(a)):
     print a[i].searchsorted(b[i])
Run Code Online (Sandbox Code Playgroud)

但是当a它很大时这很慢.

有没有办法在numpy中更有效率地做到这一点?

python arrays search numpy

10
推荐指数
1
解决办法
1943
查看次数

matplotlib:在次要标签下绘制主要刻度标签

这似乎应该很容易 - 但我看不出怎么做:

我有一个时间在X轴上的情节.我想设置两组刻度,小刻度显示当天的小时和主要刻度显示日/月.所以我这样做:

# set date ticks to something sensible:
xax = ax.get_xaxis()
xax.set_major_locator(dates.DayLocator())
xax.set_major_formatter(dates.DateFormatter('%d/%b'))

xax.set_minor_locator(dates.HourLocator(byhour=range(0,24,3)))
xax.set_minor_formatter(dates.DateFormatter('%H'))
Run Code Online (Sandbox Code Playgroud)

这标记了刻度线确定,但主刻度标签(日/月)绘制在次刻度标签之上:

SIG. 波高合奏时间序列

如何强制主要刻度标签绘制在次要刻度标签下方?我尝试在DateFormatter中添加换行符转义字符(\n),但由于垂直间距不太正确,所以这是一个很差的解决方案.

任何意见,将不胜感激!

python plot matplotlib axis-labels

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

F2PY - 从子程序访问模块参数

我不能让f2py在单独的子例程中引用模​​块中的参数,在子例程中它用于定义输入数组维度.即参数在一个模块中是失败的:

! File: testmod.f90
MODULE testmod
INTEGER, PARAMETER :: dimsize = 20
END MODULE testmod
Run Code Online (Sandbox Code Playgroud)

并且参数dimsize需要在另一个文件的子例程(不包含在模块中)中引用,该文件将是我的python模块的入口点:

! File testsub.f90
SUBROUTINE testsub(arg)
USE testmod
REAL, INTENT(IN) :: arg(dimsize)
END SUBROUTINE testsub
Run Code Online (Sandbox Code Playgroud)

我像这样编译:

f2py -m testmod  -h testmod.pyf testsub.f90
pgf90 -g -Mbounds -Mchkptr -c -fPIC testmod.f90 -o testmod.o
pgf90 -g -Mbounds -Mchkptr -c -fPIC testsub.f90 -o testsub.o
f2py -c testmod.pyf testmod.o testsub.o
Run Code Online (Sandbox Code Playgroud)

但得到这个错误:

testmodmodule.c: In function 'f2py_rout_testmod_testsub':
testmodmodule.c:180: error: 'dimsize' undeclared (first use in this function)
Run Code Online (Sandbox Code Playgroud)

我已经尝试修改testsub.g90以包含以下指令,如其他建议ni:

SUBROUTINE testsub(arg)
USE testmod
!f2py …
Run Code Online (Sandbox Code Playgroud)

python fortran f2py

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

使用savefig时,PNG选项可生成较小的文件大小

我使用matplotlib生成一个绘图,然后使用matplotlib.pyplot.savefig保存到PNG文件.

一切正常,但文件大小非常大(约120Kb).

之后我可以使用ImageMagik(通过shell)通过减少颜色数量和关闭抖动来将文件大小减少到38Kb而不会降低质量:

convert +dither -colors 256 orig.png new.png
Run Code Online (Sandbox Code Playgroud)

我的问题是:我可以在matplotlib中这样做吗?我搜索了文档,找不到任何与设置保存时使用的颜色数等有关的事情....

谢谢!

python matplotlib

7
推荐指数
2
解决办法
2267
查看次数

mpiexec.hydra - 如何在hydra_pmi_proxy位置不同的机器上运行MPI进程?

我试图在两台机器的集群上使用MPICH运行一个简单的MPI程序.然而,一个正在运行Fedora 17而另一个正在运行Debian Squeeze - 不一定是个问题,但问题是两个发行版将他们的mpi执行者放在不同的目录中:

当我从host1运行以下内容时:

mpiexec -hosts host2 -np 1 -wdir /home/chris/src/mpi/ ./mpitest
Run Code Online (Sandbox Code Playgroud)

它失败并出现以下错误

bash: /usr/lib/mpich2/bin/hydra_pmi_proxy: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这似乎是因为hydra_pmi_proxy安装在/usr/lib/mpich2/binFedora机器上而是安装在/usr/binDebian机器上.我假设当我通过ssh从host1生成进程时,它希望在host2上的相同位置找到hydra_pmi_proxy.

如果我只是在该节点上本地运行它,程序在两台机器上运行正常 - 我在尝试在两者上运行它时只会遇到问题.

我已经在MPICH文档中搜索了一种覆盖远程路径的方法hydra_pmi_proxy,但无济于事.

我能以某种方式这样做吗?我认为MPICH的一个优点是它可以轻松处理hetrogeneous host ....

任何见解都将非常感激!

mpi mpich

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

Python:用numpy读取复杂的文本文件

我正在使用带有numpy的python来读取具有相当复杂格式的文本文件中的数值模型中的数据.

Numpy的genfromtxt和fromfile函数运行良好,但只有数据是结构化的.我的数据文件看起来像这样:

------ SNIP

[sitename] [dimemsion 1 size] [dimension 2 size]
[data for dim 1]
[data for dim 2]
[date/time]
[header data]
[data (dim1 * dim2)]
[header]
[data]
...
.  
.   
[data/time]
[header]
[data]
.
.
etc...
Run Code Online (Sandbox Code Playgroud)

----剪断

所以,我有一个文本和数字的混合和一个复杂(但重复)的布局.如何在使用numpy时阅读本文的最佳方法是什么?

干杯,

克里斯

python numpy

5
推荐指数
1
解决办法
3138
查看次数

始终以STOP语句结束FORTRAN程序是一种好习惯吗?

正如标题所说,真的.

是否有任何反对不使用停止,像这样:

PROGRAM myprog
. 
. < do stuff >
.
END PROGRAM myprog
Run Code Online (Sandbox Code Playgroud)

而不是使用显式停止,如下所示:

PROGRAM myprog
. 
. < do stuff >
.
STOP
END PROGRAM myprog
Run Code Online (Sandbox Code Playgroud)

我看到很多旧版的fortran代码都有一个STOP之前的版本END PROGRAM,但它真的需要吗?

在我们的Cray机器上,STOP在程序结束时有一个stament将字符串"STOP"写入STDERR,这有点烦人......

fortran

5
推荐指数
1
解决办法
843
查看次数

matplotlib:创建大量 Patch 对象的有效方法

我有一些 Python 代码,它使用来自一些海洋模型数据的 matplotlib 绘制大量非常规多边形。

我通过创建 4 个形状为 (N,2) 的 numpy 数组来定义每个补丁的角点,其中 N 是一个大数(比如 500,000)

然后我为每组角创建 matplotlib Patch 对象并将其添加到列表中。最后,我从补丁列表中创建了一个 matplotlib PatchCollection 对象。

问题是 Patch 生成很慢,因为它在 for 循环中。我一直在想办法通过 numpy 广播来加快速度,但无法完全破解。

这是一些示例代码,带有一个小的测试数据集(显然运行起来很快)。

import numpy as np
from matplotlib.collections import PatchCollection
import matplotlib.pyplot as plt


# Cell lat/lon centers:
lons = np.array([ 323.811,  323.854,  323.811,  323.723, 324.162,  324.206,  323.723,  324.162, 323.635,  323.679])
lats = np.array([-54.887, -54.887, -54.858, -54.829, -54.829, -54.829, -54.799, -54.799, -54.770, -54.770])

# Cell size scaling factors:
cx = np.array([1,1,1,2,2,2,4,1,2,1]) 
cy …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib

4
推荐指数
1
解决办法
1562
查看次数

在x86(NASM)中为变量赋值

我决定学习汇编程序很有趣。我已经用C编写代码多年了。

我遵循了一些在线教程,这些教程打印“ Hello world”并在NASM手册中进行了一些挖掘。一切都很好。因此,我设定了一个循环打印“ hello world”的任务。我知道我可以使用loop操作码来做到这一点,但想对它进行显式编码并使用本.bss节中定义的变量。

但是,当我收到错误消息时,我显然误解了变量赋值如何在汇编中工作:

nasm -felf -o hello.o hello.asm
hello.asm:16: error: invalid combination of opcode and operands
hello.asm:17: error: invalid combination of opcode and operands
hello.asm:28: error: invalid combination of opcode and operands
Run Code Online (Sandbox Code Playgroud)

我尝试在网络上搜索有关变量分配的信息,包括NASM手册,但似乎找不到我需要的信息。有人可以协助吗?这是我的(简单!)代码:

; print "Hello world!" to the screen multiple times

section .data
    msg:    db  'Hello world!', 10
    msglen: equ $ - msg

section .bss
    iter:   resb    1

section .text
    global _start

_start:

    ; loop 10 times
    mov iter, 0     ; …
Run Code Online (Sandbox Code Playgroud)

assembly nasm

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

TKinter - 使用网格布局在窗体中"粘贴"的小部件

我在TKinter中构建了一个相当复杂的GUI,所以很自然地使用了.grid函数.

我已经将我的一些小部件组合到框架中以使它们更容易处理,但出于某种原因,当我在框架中使用带有小部件的.grid时,粘性属性似乎不起作用 - 我的小部件不会填满整个框架.

例:

f3 = tk.Frame(self, borderwidth=1, relief="ridge")
f3.grid(row=0, column=0, sticky="NS")
tk.Label(f3, text="Site List").grid(in_=f3, row=0, column=0)
self.sitelist = tk.Listbox(f3)
self.sitelist.grid(in_=f3, row=1, column=0, sticky="NS")
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,框架f3填充了我的根小部件的0,0单元格中的空间,但是Listbox没有填充框架中的所有空间,即使我已经要求它是粘性的"NS".

如果将列表框放在根小部件中的0,0那么它会拉伸并填充所有空间.如果它在框架中,它表现不佳.

任何人都可以解释如何解决这个问题?

我认为使用框架会简化我的布局,但事实并非如此!

干杯.克里斯

python tkinter

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

标签 统计

python ×8

matplotlib ×3

numpy ×3

fortran ×2

android ×1

arrays ×1

assembly ×1

axis-labels ×1

f2py ×1

image ×1

java ×1

jinja2 ×1

mpi ×1

mpich ×1

nasm ×1

plot ×1

search ×1

tkinter ×1