NumPy数组中的多个数据类型

4
我有以下数据集的numpy数组:
数组1:
[[a, 1, 20]
 [a, 3, 40]
 [b, 1, 20]
 [b, 2, 40]
 [c, 5, 90]]

数组 2:
[[a, 2]
 [a, 5]]

我要完成的目标是: Array2[0,0]=aArray2[0,1]=2,我想要从第一个数组中插值找到 a,2,30
为此,我使用了 np.where(Array1==item)[0] 来查找 'a',但我无法插值,因为导入时使用的 dtype 是字符串而不是整数。
我已经有一段时间没有使用 Numpy 了,如果我完全偏离了轨道,请告诉我。

'a'2之间插值是什么意思?你会使用哪种其他的dtype来表示'a' - abarnert
a是什么?它是字符串吗?变量?这些数组的dtype是什么? - hpaulj
1个回答

1
我不完全清楚你想做什么,但听起来你想指定一个聚合 dtype。
这在 dtype 文档中有详细解释。
例如,这里有一种方式可以指定每行具有一个 1 字符串和一个 64 位本机浮点数(当你不关心字段名称时):
dt = np.dtype('U1, f8')

当然,还有其他的方法可以编写这个代码;请阅读完整页面以获取详细信息。

假设您已经使用 loadtxt 将其读入,那里的文档有一个很好的使用此类 dtype 的示例。例如:

>>> s2 = 'a 2\na 5\n'
>>> i2 = io.StringIO(s2)
>>> a2 = np.loadtxt(i2, 'U1, i4')
>>> a2
array([('a', 2), ('a', 5)],
      dtype=[('f0', '<U1'), ('f1', '<i4')])

dt = np.dtype('U1, f8') 对我没用?它表现得像一个浮点数。 我在文档中找不到任何参考。 - VectorVictor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接