gpt4 book ai didi

python - 如何从一个 numpy float 组创建一个 numpy 标签数组?

转载 作者:行者123 更新时间:2023-11-28 17:26:38 25 4
gpt4 key购买 nike

比如我有

arr=np.linspace(0,1,11)

我想标记数字 n<0.25标签 "a" , n>0.75标签 "c" , 标签之间的数字 "b" .结果会是

array(['a', 'a', 'a', 'b', ..., 'c'])

我试过类似 arr[arr<0.25]='a' 的东西, 但它只会工作一次,因为在下一个命令中会有字符串与 float 进行比较。我可以通过在使用 for 循环进行比较之前检查其类型来实现这一点,但这很复杂。有没有一种直接的方法可以实现这一目标?

最佳答案

NumPy 数组是同构的。您必须为标签数组设置类型

import numpy as np
arr=np.linspace(0,1,11)
lbl=np.empty((arr.shape), dtype=object)
lbl[arr<.25]='a'
lbl[(arr>=.25) & (arr <=.75)] = 'b'
lbl[arr>.75]='c'

print arr
print lbl

输出:

[ 0.   0.1  0.2  0.3  0.4  0.5  0.6  0.7  0.8  0.9  1. ]
['a' 'a' 'a' 'b' 'b' 'b' 'b' 'b' 'c' 'c' 'c']

关于python - 如何从一个 numpy float 组创建一个 numpy 标签数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38435680/

25 4 0