gpt4 book ai didi

python - numpy:如何根据一维数组中的条件从两个二维数组中选取行?

转载 作者:行者123 更新时间:2023-11-30 22:01:27 24 4
gpt4 key购买 nike

我有两个长度为 n 的数组,即 old_fitnessnew_fitness,以及两个维度为 nxm 的矩阵,即 old_valuesnew_values

new_fitness[i] 时,创建包含行 new_values[i]nxm 矩阵 best_fitness 的最佳方法是什么> old_fitness[i]old_values[i] 否则?

类似于:

best_values = nd.where(new_fitness > old_fitness, new_values, old_values)

但这适用于最后两个矩阵的行,而不是单个元素?我确信有一个简单的答案,但我是 numpy 的新手。

编辑:new_valuesold_values 包含表示问题的可能解决方案的行,以及 new_fitnessold_fitness分别在 new_valuesold_values 中包含每个可能的解决方案/行的适应度数字度量。

最佳答案

只要比较的形状为 (n,1) - 而不是 (n,),就应该有效

将 numpy 导入为 np

old_fitness = np.asarray([0,1])
new_fitness = np.asarray([1,0])

old_value = np.asarray([[1,2], [3,4]])
new_value = np.asarray([[5,6], [7,8]])

np.where((new_fitness>old_fitness).reshape(old_fitness.shape[0],1), new_value, old_value)

返回

array([[5, 6],
[3, 4]])

关于python - numpy:如何根据一维数组中的条件从两个二维数组中选取行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54047535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com