python - 如何删除 numpy.array 中的列

标签 python numpy scipy

我想删除 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.]])

我该怎么做?

最佳答案

鉴于它的名字,我认为标准的方式应该是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's documentation pagenumpy.delete的参数如下:

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

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

关于python - 如何删除 numpy.array 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1642730/

相关文章:

python - 查找月中两个日期时间之间的差异

python - Emacs autocomplete.el 中的 Python 快速帮助?

image - 翻转 Matplotlib imshow() 的 x 和 y 轴

python - Numpy 对 4d 数组中的行进行排序并对相同的值求和

python - requirements.txt 在 scipy 之前安装 numpy?

python - 如何打印整个稀疏矩阵?

Python httplib2 处理异常

python - 一种快速列出两个原始列表之间差异的列表的方法

python - 在 numpy 数组的元素之间插入零

python - 计算 PIL 逊相关系数