【发布时间】:2021-08-15 11:15:49
【问题描述】:
假设我有一个 2D Numpy 数组,其结构如下所示:
my_list = np.array( [[a,b],
[c,d],
[e,f],
... ] )
现在考虑一个输入列表,例如[1,2,3,4,5]。我想将 my_list 的每个第一个元素(第一列的元素)与输入列表匹配,并在匹配发生的地方增加 my_list 的第二个元素。
如何使用 NumPy 函数实现这一点?
我试过map( lambda x: np.add(my_list[:,1] , 1 , where = (my_list[:,0] == x) ) , inp_list) 但这给了我一些奇怪的结果,这与我想要的相差甚远。
举个例子吧。
my_list = np.array( [[1,100],
[2,120],
[3,150],
[4,190],
[5,98],])
input_list = [1,4,5]
将上面的 sn-p 视为输入。现在我正在寻找这样的输出:
my_output = np.array( [[1,101],
[2,120],
[3,150],
[4,191],
[5,99],])
基本上,与 input_list 匹配的每一行的第二列都加一。
【问题讨论】:
-
你能展示示例输入和输出吗?
-
当然,我在问题中添加了一个示例。
-
my_list第一列的值是否总是连续的? -
不,并非总是如此。
-
input_list中的值是否都是唯一的?