gpt4 book ai didi

python - 在 float numpy 数组中打印字符

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

import numpy as np
from random import random
x = np.array( [random() , random(), random()])
label = np.array("Ar")
y = np.hstack((label,x))
print(y)

我想在 3-D numpy 数组前面添加一个标签,但它不会返回 float

['Ar' '0.' '0.' '0.']

我可以覆盖数组来存储 float 吗?

最佳答案

您在这里面临的问题是,numpy 数组仅支持每个数组单一类型。当您创建数组y时通过堆叠 float 的一维数组(您的数组 x )和 '<U2' 类型的 0D 数组这意味着两个 unicode 字符 ( your array label ) numpy 必须确定单一数据类型。在您的情况下,这是 '<U32'或 32 个 unicode 字符。

在 ipython 中查看代码显示:

In [1]: import numpy as np

In [2]: from random import random

In [3]: x = np.array( [random() , random(), random()])

In [4]: x
Out[4]: array([ 0.63426736, 0.79011426, 0.66686608])

In [5]: label = np.array("Ar")

In [6]: label
Out[6]:
array('Ar',
dtype='<U2')

In [7]: y = np.hstack((label,x))

In [8]: y
Out[8]:
array(['Ar', '0.6342673585559033', '0.7901142593791942',
'0.6668660767693766'],
dtype='<U32')

因此,通过添加标签,您隐式转换了x中的 float 。到 unicode 字符串。

为了避免这种情况,您可以分别管理标签和数组。例如,您可以创建两个项目的元组,如下所示:

In [9]: label = "Ar"

In [10]: x = np.random.random(3)

In [11]: ar = (label, x)

In [12]: ar
Out[12]: ('Ar', array([ 0.65850863, 0.89673635, 0.11127903]))

In [13]: ar[1].dtype
Out[13]: dtype('float64')

我希望这会有所帮助。

关于python - 在 float numpy 数组中打印字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33127106/

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