回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个2D numpy数组,每一行都被填充(下面的例子中为-1)</p>
<p>对于每一行,我想选择一个随机数,不包括填充,并且只使用numpy操作获取每一行的非填充值的数量</p>
<p>这里是一个最小的例子。我为pad选择了-1,但是pad可以通过任何负int</p>
<pre><code>import numpy as np
numList = [[0, 32, 84, 93, 1023, -1], [0, 23, 33, 45, -1, -1], [0, 10, 15, 21, 24, 25], [0, 23, -1, -1, -1, -1], [0 , 13, 33, 34, -1, -1]]
numArray = np.array(numList)
numArray
array([[ 0, 32, 84, 93, 1023, -1],
[ 0, 23, 33, 45, -1, -1],
[ 0, 10, 15, 21, 24, 25],
[ 0, 23, -1, -1, -1, -1],
[ 0, 13, 33, 34, -1, -1]])
</code></pre>
<p>对于长度,输出应该如下所示</p>
<pre><code>LengthsResults
[5, 4, 6, 2, 4].
</code></pre>
<p>下面是一个示例输出,用于为每行拾取一个随机的非焊盘编号</p>
<pre><code>randomNonPad
[84, 45, 0, 0, 34]
</code></pre>
<p>编辑:</p>
<p>我在看np.where,它可以让你在条件下过滤出numpy数组的一部分,还有numpy随机选择,它可以让你为数组选择一个随机数。我不确定如何处理np。尽管如此,似乎您可以将其更改为某些内容,但我还不确定是什么,甚至不确定它是否是正确的方法。对于python,您可以从列表开始,并将其附加到任意长度,但是对于numpy,您需要提前建立数组长度</p>