我有两个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"这样做的方式。提前谢谢。
答案 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.])