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数组前面添加一个标签,但它不会返回浮点数
['Ar' '0.' '0.' '0.']
我可以覆盖数组来存储浮点数吗?
答案 0 :(得分:2)
你在这里遇到的问题我,numpy数组只支持每个数组一个类型。通过堆叠一维浮点数组(您的数组 byte[] byteArr = new byte[3];
String decodeText = new String(byteArr);
Charset.forName("UTF-8").encode(decodeText);
)和类型为y
的0D数组创建数组x
意味着两个unicode字符('<U2'
)numpy以单一数据类型为基础。在您的情况下,这是your array label
或32个unicode字符。
在ipython中查看您的代码显示了这一点:
'<U32'
因此,通过添加标签,您隐式地将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')
中的浮点数转换为unicode字符串。
为避免这种情况,您可以单独管理标签和数组。例如,您可以创建这两个项目的元组:
x
我希望这会有所帮助。