gpt4 book ai didi

python - 如何使用python将数组中的值替换为字符串

转载 作者:行者123 更新时间:2023-11-30 23:27:26 25 4
gpt4 key购买 nike

我有一个数据数组,我想用“INDE”字符串替换所有大于 50 的值。我怎样才能在Python中做到这一点?

我尝试过这个:

import numpy as np

row={'time': 10, 'tsys_1': [85.1, 91.8, 94.3, 37.1, 12.2, 17.4, 78.5, 68.8],'subarray': 1}

data=np.array(row['tsys_1'][0:8])

for i in range(len(data)):
if data[i] > 50:
data[i] = 'INDE'

但随后出现此错误:

ValueError: could not convert string to float: INDE

我该怎么做?

最佳答案

用纯 python 来做这件事可能会更好。

>>> row['tsys_1'] = ['INDE' if x > 50 else x for x in row['tsys_1']]
>>> row
{'subarray': 1,
'time': 10,
'tsys_1': ['INDE', 'INDE', 'INDE', 37.1, 12.2, 17.4, 'INDE', 'INDE']}

拥有一个由字符串和数字混合而成的 numpy 数组有点违背了拥有 numpy 数组的初衷。但是,如果您确实想要它,可以通过以下方式获得它:

>>> data = np.array(row['tsys_1'][0:8]).astype(object)
>>> data[data > 50] = 'INDE'
>>> data
array(['INDE', 'INDE', 'INDE', 37.1, 12.2, 17.4, 'INDE', 'INDE'], dtype=object)

如果您想在 numpy 中屏蔽这些值,您可能需要考虑使用屏蔽数组(在 numpy.ma 中)或使用类似 np.nan 的内容> 作为您的掩码值,而不是此字符串 'INDE'

关于python - 如何使用python将数组中的值替换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22075036/

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