回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有两个numpy数组,我可以通过添加这两个数组来获得所有的组合,这两个数组中的行都没有剩余的零,但是在这样做的同时,我丢失了数组的原始组成部分,我不知道数组如何检索到这条信息。请看下面我的代码:</p>
<pre class="lang-py prettyprint-override"><code>x = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0],
[0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],
[0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],
[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
[0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1]])
y= np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],
[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
[0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1]])
x = np.expand_dims(x, 1)
combos = (x + y).reshape(-1, 12).astype("int")
mask = np.any(np.equal(combos, 0), axis=1)
combos=combos[~mask]
print("combos:",combos)
# Prints
combos: [[1 1 1 2 2 2 2 2 1 1 1 1]
[1 1 1 1 2 2 2 2 2 1 1 1]
[1 1 1 2 2 2 2 2 2 1 1 1]
[1 1 1 2 2 2 2 2 2 1 1 1]]
</code></pre>
<p>现在,根据上面的结果,我需要知道创建组合的x和y的行值是多少,例如第一行:</p>
<p>组合[0]=[1,1,1,2,2,2,2,2,1,1,1]</p>
<p>X=[1,1,1,1,1,1,1,1,1,0,0,0,0]</p>
<p>Y=[0,0,0,1,1,1,1,1,1,1,1,1,1]</p>