我在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]=a
和Array2[0,1]=2
我想从第一个数组进行插值以找到a,2,30
。
要做到这一点,我使用寻找np.where(Array1==item)[0]
的{{1}},我无法进行插值,因为用于导入的'a'
是一个字符串,而不是中间体
我使用过Numpy已经有一段时间了,所以如果我完全在杂草中,请告诉我。
答案 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')])