gpt4 book ai didi

python - 替换 numpy 数组中的值时防止字符串被截断

转载 作者:行者123 更新时间:2023-12-04 14:36:00 25 4
gpt4 key购买 nike

假设我有数组 ab

a = np.array([1,2,3])
b = np.array(['red','red','red'])

如果我要对这些数组应用一些像这样的奇特索引
b[a<3]="blue"

我得到的输出是
array(['blu', 'blu', 'red'], dtype='<U3')

我知道这个问题是因为 numpy 最初只为 3 个字符分配空间,因此它无法将整个单词 blue 放入数组中,我可以使用什么解决方法?

目前我正在做
b = np.array([" "*100 for i in range(3)])
b[a>2] = "red"
b[a<3] = "blue"

但这只是一种解决方法,这是我的代码中的错误吗?或者是numpy的一些问题,我该如何解决?

最佳答案

您可以通过设置 dtype 来处理可变长度的字符串。的 b成为 "object" :

import numpy as np
a = np.array([1,2,3])
b = np.array(['red','red','red'], dtype="object")

b[a<3] = "blue"

print(b)

这输出:
['blue' 'blue' 'red']

dtype将处理字符串或其他通用 Python 对象。这也必然意味着在引擎盖下你会有一个 numpy指针数组,所以不要指望使用原始数据类型时获得的性能。

关于python - 替换 numpy 数组中的值时防止字符串被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52741192/

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