我有二维阵列:
matrix =np.array([[95,90,-1,55],[100,90,-1,80],[0,90,85,100]])
我尝试选择2个随机行,忽略-1
我试过:
random_ints = np.random.choice(len(matrix), size=2, replace=False)
students = matrix[random_ints, :]
ignored = students[students != -1]
但被忽略的var被重塑为1D数组,例如:
[95,90,55,100,90,80]
我想要忽略保存的2D,例如:
[[95,90,55],[100,90,80]]
你怎么能这么做
如果在中有相等的要保留的元素数(!=-1) 每行,您都可以运行:
要检查此变量,请设置
random_ints = np.array([0,1])
,选择just 将上述行添加到学生并运行上述代码但是如果这些元素的数量不同,,Numpy将 引发异常:
原因是(在本例中)某些行有4个元素 左,而其他-仅3
不幸的是,Numpy不支持“锯齿”数组(具有不同的 每行中的元素数)
您可以得到类似于您想要的的内容,但作为嵌套列表 (不是一个Numpy数组):
结果(对于2行和1行)为:
相关问题 更多 >
编程相关推荐