当arr是带有nans的numpy数组时,sorted(arr)的行为是什么?

时间:2019-07-17 22:06:27

标签: python numpy sorting matplotlib nan

我已经用下面的代码生成了下面的图:

import numpy as np
import matplotlib.pyplot as plt

unsorted_arr = np.random.random_integers(-100,100,1000).astype(float)
nan_index = np.random.random_integers(0,1000,10)
unsorted_arr[np.random.random_integers(0,1000,10)] = np.nan
plt.subplot(2,1,1)
plt.plot(unsorted_arr)
for i in nan_index:
    plt.axvline(i, c='black')
plt.subplot(2,1,2)
plt.plot(sorted(unsorted_arr))
for i in nan_index:
    plt.axvline(i, c='black')
plt.show()

enter image description here

我创建了一个从1000到100的1000x1整数数组(顶部图),向随机索引添加了10 nan(用黑条表示),然后对该数组进行了排序(底部图)。似乎排序后的数组将始终具有n-1个单调递增值的段,其中n是数组中nan的数量。起初,我认为分段是根据nans所在的位置进行细分的(这对于某些应用程序非常有用),但是如您所见,nans并不对应于分段中断。我想了解更多有关此行为的信息,以防我可以找到任何用处。

0 个答案:

没有答案