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

Python ValueError:尝试获取空序列的argmin,但矩阵不为空,python,numpy,Python,Numpy,我花了两天时间试图解决这个问题,但没有任何改进。 我有以下代码: 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))

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

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”?

我想你的
距离多刀
不是真正的
numpy.matrix
numpy.array
,而是其他东西。打印
键入(distance\u mutidao)
以了解它是什么。实际上,我现在已经解决了它。。。问题在于我的删除功能。正确的是:
pop=np.delete(pop,menor,axis=0)
fitness=np.delete(fitness,menor,axis=0)
,但我没有使用“axis”。正因为如此,我的停车条件是
len(pop)
,距离的大小减少了,但是pop没有。