Numpy数组中的多个dtypes

时间:2014-12-05 22:34:30

标签: python numpy

我在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]的{​​{1}},我无法进行插值,因为用于导入的'a'是一个字符串,而不是中间体

我使用过Numpy已经有一段时间了,所以如果我完全在杂草中,请告诉我。

1 个答案:

答案 0 :(得分: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')])