回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个二维数组。在这种情况下,每个行向量都被认为是感兴趣的量。我要做的是返回所有作为一个数组出现<em>一次的所有行,以及作为第二个数组多次出现的所有行。在</p>
<p>例如,如果数组是:</p>
<pre><code>a=[[1,1,1,0], [1,1,1,0], [5,1,6,0], [3,2,1,0], [4,4,1,0], [5,1,6,0]]
</code></pre>
<p>我想返回两个数组:</p>
^{pr2}$
<p>保持秩序是很重要的。我编写的代码如下:</p>
<pre><code>def singles_nonsingles(array):
#returns the elements that occur only once, and the elements
#that occur more than once in the array
singles=[]
nonsingles=[]
arrayhash=map(tuple, array)
for x in arrayhash:
if (arrayhash.count(x)==1):
singles.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(x)
if (arrayhash.count(x)>1):
nonsingles.append(x)
nonsingles=array(nonsingles)
singles=array(singles)
return {'singles':singles, 'nonsingles':nonsingles}
</code></pre>
<p>现在,我很高兴地说这是可行的,但不高兴地说它非常慢,因为我的一个典型数组是30000(rows)x10 elements/row=300000个elements。有人能给我一些关于如何加快速度的建议吗??如果这个问题很简单,我很抱歉,我是Python新手。如果Python使用的是scinpy/7。在</p>