这里有很多问题,其中一个想在numpy数组中找到第n个最小的元素。但是,如果您有一个数组的数组呢?如下所示:
>>> print matrix
[[ 1. 0.28958002 0.09972488 ..., 0.46999924 0.64723113
0.60217694]
[ 0.28958002 1. 0.58005657 ..., 0.37668355 0.48852272
0.3860152 ]
[ 0.09972488 0.58005657 1. ..., 0.13151364 0.29539992
0.03686381]
...,
[ 0.46999924 0.37668355 0.13151364 ..., 1. 0.50250212
0.73128971]
[ 0.64723113 0.48852272 0.29539992 ..., 0.50250212 1. 0.71249226]
[ 0.60217694 0.3860152 0.03686381 ..., 0.73128971 0.71249226 1. ]]
如何从这个二维数组中获取前n小的元素?
>>> print type(matrix)
<type 'numpy.ndarray'>
以下是我找到最小项坐标的方法:
min_cordinates = []
for i in matrix:
if numpy.any(numpy.where(i==numpy.amin(matrix))[0]):
min_cordinates.append(int(numpy.where(i==numpy.amin(matrix))[0][0])+1)
现在我想找到前10个最小的项目。
numpy.sort(matrix, axis=None)[:10]
代替调用matrix.flatten()
。 - Warren Weckesser