python - 如果从 pandas 转换为 numpy 后数组包含 nan,则删除 'nan' 或减少 numpy 数组的长度

标签 python arrays numpy

<分区>

我想从一个 numpy 数组中删除 nan。假设我的 numpy 数组包含:

np_array = ["123","pqr","123",nan,"avb", nan]

预期输出:

["123","pqr","123","avb"]

如果我们使用 pandas.dropna() 在 pandas 中执行此操作,它会删除我不想执行的整行。我只想删除该值并减小数组大小。

有什么办法可以做到吗?

最佳答案

您不能使用 np.isnan,因为 NaN 是数组中的字符串,但您可以通过与字符串进行比较来使用 bool 索引:"南”:

>>> import numpy as np
>>> np_array = np.array(["123","pqr","123",np.nan,"avb", np.nan])
>>> np_array[np_array != 'nan']
array(['1234', 'pqr', '123', 'avb'], 
      dtype='<U4')

关于python - 如果从 pandas 转换为 numpy 后数组包含 nan,则删除 'nan' 或减少 numpy 数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42387613/

相关文章:

python - 相当于基本 python 中的 Numpy.argsort()?

iphone - iPhone和数据库之间的抽象层

python - 防止 numpy 创建多维数组

javascript - 扩展数组中的对象而不重新定义

python - numpy:高效读取大型数组

python - Django渲染函数: template not printing variable

python - pip install --find-links html文件格式

java - 简单的空间修剪程序

Python矢量化嵌套for循环

python - 使用 f2py 将锯齿状数组传递给 Fortran