gpt4 book ai didi

python - 从字符串数组中删除 nan

转载 作者:行者123 更新时间:2023-12-01 08:46:59 25 4
gpt4 key购买 nike

我有一个以下数组:

data=array([['beef', 'bread', 'cane_molasses', nan, nan, nan],
['brassica', 'butter', 'cardamom']])

如何删除 nan 以获得:

 array([['beef', 'bread', 'cane_molasses'],
['brassica', 'butter', 'cardamom']])

我已经尝试了here中给出的方法但这不起作用,因为在我的情况下,我的数组具有更高的维度,并且不是一个简单的向量。

最佳答案

object 数据类型数组不支持矢量化操作。但是您可以先将其转换为 list,然后再转换回数组。这里我们使用事实np.nan != np.nan by design :

data = np.array([['beef', 'bread', 'cane_molasses', np.nan, np.nan, np.nan],
['brassica', 'butter', 'cardamom']])

res = np.array([[i for i in row if i == i] for row in data.tolist()])

array([['beef', 'bread', 'cane_molasses'],
['brassica', 'butter', 'cardamom']],
dtype='<U13')

请注意,生成的数组将是字符串类型(此处最大长度为 13)。如果您想要一个可以容纳任意对象的object dtype数组,则需要指定dtype=object:

res = np.array([[i for i in row if i == i] for row in data.tolist()], dtype=object)

array([['beef', 'bread', 'cane_molasses'],
['brassica', 'butter', 'cardamom']], dtype=object)

关于python - 从字符串数组中删除 nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53266170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com