Numpy:计算特定阵列位置的表达式

时间:2016-04-27 16:57:34

标签: python arrays numpy

我有两个numpy数组dQ / dx和dQ / dt,我想计算v =(dQ / dt)/(dQ / dx)但仅在dQ / dx和dQ / dt都非零的位置。如果dQ / dx或dQ / dt等于零,那么V = 0.在例子中dQ / dx = [0,0,0.2,0.1],dQ / dt = [0.1,0,0.4,0],这应该给出V = [0,0,2,0]。 我可以通过循环遍历所有数组元素来做到这一点,但是还有更多" numpy"这样做的方式。提前谢谢。

1 个答案:

答案 0 :(得分:1)

试试这段代码:

>>> import numpy as np
>>> dQdx = np.asarray([0, 0, 0.2, 0.1])
>>> dQdt = np.asarray([0.1 , 0, 0.4, 0])
>>> V = np.where(np.logical_and(dQdt, dQdx), dQdt/dQdx, 0)
>>> V
array([ 0.,  0.,  2.,  0.])