ValueError:尝试获取空序列的argmin,但矩阵不为空

2024-09-28 01:33:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我花了两天时间试图解决这个问题,但没有任何改进。 我有以下代码:

if qtd > qtd_individuos:
          distancia_mutidao = crowding_distance(fitness)
          print("Distância de mutidão: \n{} População: \n{} Fitness: \n{}".format(distancia_mutidao, pop, fitness))

          while (len(pop) > qtd_individuos):
              menor_ = distancia_mutidao.argmin()
              pop = np.delete(pop, menor_)
              fitness = np.delete(fitness, menor_)
              distancia_mutidao = np.delete(distancia_mutidao, menor_)

其中distance_mutidao、pop和fitness是NumPy数组。我试着从矩阵distancea_multidao,pop和fitness中去掉相应的较低值。 我正在绘制这些值,我得到了:

Distância de mutidão: 
[1.         0.15555981 0.11988209 0.09177397 1.         0.14718105
 0.08688929 0.14825755 0.01990456 0.11109479 0.02420551 0.22930752
 0.16252269 0.29968407 0.03971115] População: 
[[1 3 1 3 2 1 2 1 1 2 1 1 1 1 2]
 [3 3 3 3 1 1 3 1 3 2 1 3 2 3 2]
 [2 3 3 2 1 2 1 1 2 3 1 1 3 1 1]
 [1 3 2 1 2 1 1 3 3 2 3 1 3 2 1]
 [3 3 2 3 2 3 1 2 1 2 2 3 3 3 2]
 [3 1 1 1 3 3 2 3 2 2 3 1 2 1 3]
 [1 3 2 1 2 1 1 3 3 2 3 1 3 1 3]
 [3 1 1 1 3 3 2 3 2 2 3 2 2 2 3]
 [2 3 3 2 1 2 1 1 2 3 1 1 3 1 1]
 [3 1 1 1 3 3 2 3 2 2 3 1 2 2 1]
 [2 1 2 3 3 2 3 3 2 1 3 1 2 1 3]
 [3 1 1 1 3 3 2 2 2 3 2 3 3 3 3]
 [2 1 1 1 1 2 3 2 2 1 3 3 2 2 3]
 [2 1 3 1 1 2 3 3 2 1 3 1 2 2 1]
 [1 3 2 3 2 1 1 3 3 2 3 1 3 2 1]] Fitness: 
[[ 8.         58.73167024]
 [19.         49.34529535]
 [12.         55.08177469]
 [14.         53.10238747]
 [20.         46.55252601]
 [16.         51.15094548]
 [15.         51.74934794]
 [18.         49.47316082]
 [12.         55.08177469]
 [15.         52.503985  ]
 [17.         51.2657001 ]
 [20.         47.5785755 ]
 [14.         53.62171346]
 [13.         55.32419517]
 [16.         51.44574786]]

所以,矩阵距离a_mutidao不是空的。。。为什么我会得到这个错误“ValueError:尝试获取空序列的argmin”


Tags: distnpdedeletepopdistancefitnessqtd

热门问题