我正在从AUTO数字延续包中获取输出,并且需要过滤掉具有负值变量的结果,因为它们是非物理的.所以,如果我有,例如:
>>> a = np.array([[0,1,2,3,4],[-1,-0.5,0,0.5,1],[-3,-4,-5,0.1,0.2]])
我想留下:
>>> b
array([[ 3. , 4. ],
[ 0.5, 1. ],
[ 0.1, 0.2]])
但当我尝试numpy.where得到:
>>> b = a[:,(np.where(a[1]>=0) and np.where(a[2]>=0))]
>>> b
array([[[ 3. , 4. ]],
[[ 0.5, 1. ]],
[[ 0.1, 0.2]]])
>>> b.shape
(3, 1, 2)
也就是说,它会向阵列添加另一个不需要的轴.我究竟做错了什么?
最佳答案 假设您要做的就是删除具有一个或多个负值的列,您可以这样做:
a = np.array([[0,1,2,3,4],[-1,-0.5,0,0.5,1],[-3,-4,-5,0.1,0.2]])
b = a[:,a.min(axis=0)>=0]