rya*_*lon 3 fortran numpy slice
我想在Fortran 中做这样的事情:
program where
real :: a(6) = (/ 4, 5, 6, 7, 8, 9 /)
print *, a(a>7)
end program
Run Code Online (Sandbox Code Playgroud)
在Python 中,我通常会像这样使用NumPy 执行此操作:
program where
real :: a(6) = (/ 4, 5, 6, 7, 8, 9 /)
print *, a(a>7)
end program
Run Code Online (Sandbox Code Playgroud)
我玩过,但到目前为止没有任何效果,但我猜这很简单。
我会稍微扩展@VladimirF 的答案,因为我怀疑您不想将自己限制在确切的打印示例中。
a>7返回一个logical对应于阵列a与.true.在其中满足条件索引,.false.否则。的pack固有采取这样的掩模,并返回与这些元件的阵列与.true.在掩模。
但是,您可以使用面具做其他事情,这可能符合您的numpy.where愿望。例如,有where构造(和where语句)和merge内在的。此外,您可以pack再次使用掩码来获取索引并进行更多涉及的操作。