如果我有一个随机的numpy数组,如下所示:
myArray:
[0 , 0 , 51.78 , 17],
[823. , 91.31 , 51.63 , 13],
[819. , 93.03 , 51.77 , 52],
[776.32 , 93.85 , 52.02 , 34],
[755.12 , 92.48 , 49.955 , 77],
[739.01 , 97.68 , 50.75 , 48],
[760.17 , 98.26 , 51.1 , 12],
[780.37 , 98.82 , 51.52 , 13],
[740.34 , 98.5 , 50.48 , 17],
[768.65 , 104.86 , 51.71 , 97]]
我希望删除第一个元素为0的列,从而生成一个数组:
myArray:
[51.78 , 17],
[51.63 , 13],
[51.77 , 52],
[52.02 , 34],
[49.955 , 77],
[50.75 , 48],
[51.1 , 12],
[1.52 , 13],
[50.48 , 17],
[51.71 , 97]]
注意
我知道np.delete
,我不确定是否可以在给定任何随机数组的情况下实现此功能。我正在寻找一种方法,如果给出一个在第一行有0的随机数组,我可以对任何数组实现相同的功能,而不仅仅是上面给出的例子。
任何提示都将不胜感激!
答案 0 :(得分:3)
使用Boolean Indexing,条件为arr[0] != 0
:
arr[:, arr[0] != 0]
#array([[ 51.78 , 17. ],
# [ 51.63 , 13. ],
# [ 51.77 , 52. ],
# [ 52.02 , 34. ],
# [ 49.955, 77. ],
# [ 50.75 , 48. ],
# [ 51.1 , 12. ],
# [ 51.52 , 13. ],
# [ 50.48 , 17. ],
# [ 51.71 , 97. ]])