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