这是一个新手的问题,我肯定已经在某个地方得到了回答,但不幸的是,我在任何地方都找不到它
我有一个函数findDX
,它接受一个Nx2
numpy数组D
和一个单浮点X
(定义如下)。我想在一个固定的D
上计算这个函数,它有多个值X
,
i、 e.find_DX(D, 1)
,find_DX(D, 2)
,find_DX(D, 3)
其中X
输入的数组是[1,2,3]
是否有一种方法可以在保持D固定的同时传递X的多个值(除了更改函数定义)?我试过了
find_DX([mcm],[1,2,3])
但可以预见的是,这会产生一个ValueError: operands could not be broadcast together with shapes
def find_DX(D, X):
"""
Parameters
----------
D : numpy array
Input cumulative DVH.
X : Float
We're finding the dose recieved by at least X% of tissues.
Returns
-------
DX
"""
idx = (np.abs(D[:,1] - X)).argmin()
return D[idx,0]
编辑:我刚刚为它写了一个循环。我本想避免这样做,但它确实起了作用。如果有人想使用我的新功能,我已经在下面发布了我的新功能:
def find_DX(cDVH, X_values):
"""
Parameters
----------
cDVH : numpy array
Input array
X : numpy array
Values of X to evaluate.
"""
X_values=np.float64(X_values) #force to float
Out=np.zeros_like(X_values)
for i in range(0,len(X_values)):
idx = np.abs(cDVH[:,1] - X_values[i]).argmin()
Out[i]=cDVH[idx,0]
return tuple(Out)
你可以试试这个
相关问题 更多 >
编程相关推荐