我有一个 2D numpy 数组,每一行都填充了(下面的示例使用 -1)。
对于每一行,我想选择一个随机数,不包括填充,并仅使用 numpy 操作获取每一行的非填充值的数量。
这是一个最小的例子。我为 pad 选择了 -1,但 pad 可以是任何负整数。
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]])
对于长度,输出应该看起来像这样
LengthsResults
[5, 4, 6, 2, 4].
这是一个示例输出,用于为每一行选择一个随机的非填充数字。
randomNonPad
[84, 45, 0, 0, 34]
编辑:
我在看 np.where,它可以让你根据条件和 numpy 随机选择过滤掉你的 numpy 数组的一部分,它可以让你为数组选择一个随机数。虽然我不确定如何处理 np.where,但似乎您可以将其更改为某些东西,但我不确定是什么,或者即使它是正确的方法。对于 python,您可以从一个列表开始,并将其附加到任意长度,但对于 numpy,您需要提前建立数组长度。
烙印99
慕田峪9158850
相关分类