我有3个数组,其中两个是1d,一个是2d数组。
l = [ 2.82839846 -6.30950578 -6.38959391 -0.27519359 2.6869558 ]
u = [ 3.19099915 -5.08752367 -6.24197166 0.23919663 3.41277894 ]
a = [[ 3.15995024 -3.70046728 -5.33644501 -0.27519359 6.59680683 ]
[ 3.20134879 -4.88752672 -6.3360199 1.18276442 4.67593146 ]
[ 3.94292226 -3.93983918 -6.38959391 1.30204279 4.76023172 ]
[ 5.10369086 -6.30950578 -4.88046264 0.30511958 2.6869558 ]
[ 4.79710151 -3.00969539 -3.35513095 0.79020593 4.15729757 ]
[ 2.82839846 -5.6875145 -6.21062225 0.04142778 3.64081071 ]
[ 4.45212618 -3.81156855 -4.7380557 2.52212191 5.13595999 ]
[ 3.20435142 -3.23760713 -5.70469897 0.91339003 2.72868361 ]]
我想做l <= a < u
,这样我就得到了下面的数组。
r = [[ 2.82839846 -6.30950578 -6.38959391 -0.27519359 2.6869558 ]
[ 3.15995024 -5.6875145 -6.3360199 0.04142778 2.72868361 ]]
此外,如果在结果数组中,某些列的值比另一列多,那么我希望用0填充其他列。
r = [[ 2.82839846 -6.30950578 -6.38959391 -0.27519359 2.6869558 ]
[ 3.15995024 -5.6875145 -6.3360199 0.04142778 2.72868361 ]
[ 3.17945666 0 0 0.04032400 0 ]]
有没有任何有效的蟒蛇方法来完成上述
你可以做:
a.sort(0)
a[(l <= a) * (a <= u)]
array([ 2.82839846, -6.30950578, -6.38959391, -0.27519359, 2.6869558 ,
3.15995024, -5.6875145 , -6.3360199 , 0.04142778, 2.72868361])