将多个值从数组中馈入函数,但仅用于单个参数

问题描述 投票:0回答:1

这是一个新手问题,我敢肯定已经在某个地方回答了这个问题,但是很遗憾,我在任何地方都找不到它。

我有一个函数findDX,它接受一个Nx2 numpy数组D和一个浮点数X(下面提供了定义)。我想在具有多个D值的fixed X上评估此函数,即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]
python function parameter-passing
1个回答
0
投票

您可以尝试这个,

import numpy as np

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

    """
    tmpArr=[]
    for i in X:
        idx = (np.abs(D[:,1] - i)).argmin()
        tmpArr.append(idx)
    return tmpArr

a = [[1,2],[2,3]]   #sample array
a= np.array(a)

print(find_DX(a,[1,2,3]))
© www.soinside.com 2019 - 2024. All rights reserved.