如何删除numpy.array中的列

发布于 2021-01-29 17:09:38

我想删除numpy.array中的选定列。这是我的工作:

n [397]: a = array([[ NaN,   2.,   3., NaN],
   .....:        [  1.,   2.,   3., 9]])

In [398]: print a
[[ NaN   2.   3.  NaN]
 [  1.   2.   3.   9.]]

In [399]: z = any(isnan(a), axis=0)

In [400]: print z
[ True False False  True]

In [401]: delete(a, z, axis = 1)
Out[401]:
 array([[  3.,  NaN],
       [  3.,   9.]])

在此示例中,我的目标是删除所有包含NaN的列。我希望最后一个命令会导致:

array([[2., 3.],
       [2., 3.]])

我怎样才能做到这一点?

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    鉴于其名称,我认为标准方法应为delete

    import numpy as np
    
    A = np.delete(A, 1, 0)  # delete second row of A
    B = np.delete(B, 2, 0)  # delete third row of B
    C = np.delete(C, 1, 1)  # delete second column of C
    

    根据numpy的文档页面,其参数numpy.delete如下:

    numpy.delete(arr, obj, axis=None)

    • arr 引用输入数组,
    • obj 指的是哪些子数组(例如,列/行号或数组的切片),以及
    • axisaxis = 1逐列()或逐行(axis = 0)删除操作。


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看