我正在Windows 7 64bits上将Mpi4py 1.3与python 2.7一起使用。我从此处下载了包含OpenMPI 1.6.3 的可安装版本,因此在已安装目录(* / Python27 \ Lib \ site-packages \ mpi4py \ lib)中存在以下库:libmpi.lib,libmpi_cxx.lib,libopen-pal.lib和libopen-rte.lib。现在在我的代码中尝试导入它时:
from mpi4py import MPI
Run Code Online (Sandbox Code Playgroud)
它返回以下错误:ImportError:DLL加载失败:找不到指定的模块。我试图将bove lib文件与* / Python27 \ Lib \ site-packages \ mpi4py \ MPI.pyd一起复制,甚至复制到Windows / System32,但这没有用。感谢您对缺少DLL以及如何解决错误的帮助。
谢谢,
@ Aso.agile
我想知道如何使用numpy mgrid为未知数量的维度(D)创建一个网格(多维数组),每个维度都有一个下限和上限以及二进制数:
n_bins = numpy.array([100 for d in numpy.arrange(D)])
bounds = numpy.array([(0.,1) for d in numpy.arrange(D)])
grid = numpy.mgrid[numpy.linspace[(numpy.linspace(bounds(d)[0], bounds(d)[1], n_bins[d] for d in numpy.arrange(D)]
Run Code Online (Sandbox Code Playgroud)
我猜上面不起作用,因为mgrid创建索引数组而不是值.但是如何使用它来创建值数组.
谢谢
Aso.agile
我是一个天真的numpy用户,需要你的帮助以解决以下问题:我想用第三个数组替换多维数组的一些元素,这些元素少于第二个数组; 例如:
x = np.arange(16).reshape((2, 8))
# x = np.array([[ 0, 1, 2, 3, 4, 5, 6, 7],
# [ 8, 9, 10, 11, 12, 13, 14, 15]])
Run Code Online (Sandbox Code Playgroud)
和
y = np.array([[2], [13]])
# y = np.array([[ 2], [13]])
Run Code Online (Sandbox Code Playgroud)
现在,找出x大于y,并且如果有至少一个True在x > y阵列中,计数这些实例中,创建另一阵列(z)和取代x与这些元素z:
x > y
# = [[False, False, False, True, True, True, True, True],
# [False, False, False, False, False, False, True, True]]
Run Code Online (Sandbox Code Playgroud)
在这种情况下,应该替换x …