<h2>最简单的答案</h2>
<p>如果您真的只想<code>'UNKNOWN'</code>在前面,那么最简单、计算效率最高的方法就是将它与第<code>0</code>个元素交换:</p>
<pre><code>index1 = np.array(['level4','level3','level2','UNKNOWN','level1'])
# find the index of 'UNKNOWN'
ix = np.flatnonzero(index1 == 'UNKNOWN')[0]
# swap values
index1[[0, ix]] = index1[[ix, 0]]
print(index1)
# output:
# ['UNKNOWN' 'level3' 'level2' 'level4' 'level1']
</code></pre>
<h2>保持<code>level</code>元素的原始顺序</h2>
<p>如果您希望<code>level</code>元素在输出中的顺序与在输入中的顺序相同,那么下面有一种方法(稍微复杂一些,但仍然非常简单):</p>
<pre><code>index1 = np.array(['level4','level3','level2','UNKNOWN','level1'])
# find the index of 'UNKNOWN'
ix = np.flatnonzero(index1 == 'UNKNOWN')[0]
# shift values
u = index1[ix]
index1[1:ix + 1] = index1[:ix]
index1[0] = u
print(index1)
# output:
# ['UNKNOWN' 'level4' 'level3' 'level2' 'level1']
</code></pre>
<h2>不要使用<code>partition</code></h2>
<p>如果不希望对结果进行排序,则不应使用<a href="https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.partition.html#numpy-partition" rel="nofollow noreferrer">^{<cd6>}</a>:</p>
<pre><code>index1 = np.array(['level4','level3','level2','UNKNOWN','level1'])
index1.partition(np.flatnonzero(index1 == 'UNKNOWN'))
print(index1)
# output:
# ['UNKNOWN' 'level1' 'level2' 'level3' 'level4']
</code></pre>