gpt4 book ai didi

python - 为什么我必须使用 np.string_?为什么我不能使用没有下划线的 np.string?

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

我刚开始学习 NumPy,所以我对它的所有来龙去脉还是有些迷茫。我正在学习如何创建具有特定数据类型的数组。我对此有点困惑:

当我创建一个 int32 数据类型的数组时,它只显示:

a = np.zeros((2, 3), dtype=np.int32)
print(a)
print(a.dtype)

打印语句显示:int32

当我创建一个 float 数据类型的数组时,它只显示:

a = np.array([1, 2, 3, 4], dtype=np.float)
print(a)
print(a.dtype)

打印语句显示:float64

但是,当我创建一个数据类型为字符串的数组时,它没有类似的输出:

a = np.array([1,2,3,4,5,6], dtype=np.string_)

print(a)
print(a.dtype)

打印语句显示:

[b'1' b'2' b'3' b'4' b'5' b'6']
|S1

为什么?这是什么意思?另外,为什么我不能选择dtype=np.string?为什么我需要下划线 dtype=np.string_

最佳答案

如您所见,如果您只是这样做:

>>> np.string_
<class 'numpy.bytes_'>
>>>

它会自动为每个值提供一个 numpy.bytes_ 对象。'

所以你应该按如下方式做np.str_:

>>> np.array([1,2,3,4,5,6], dtype=np.str_)
array(['1', '2', '3', '4', '5', '6'], dtype='<U1')
>>>

它给出了一个常规的 numpy 标量字符串数据类型,它与常规的 str 相同。

只使用 str 会更容易:

>>> np.array([1,2,3,4,5,6], dtype=str)
array(['1', '2', '3', '4', '5', '6'], dtype='<U1')
>>>

关于python - 为什么我必须使用 np.string_?为什么我不能使用没有下划线的 np.string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68889719/

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