我有两个不同长度的一维数组
t_1 and t_2 where len(t_1)<len(t_2)
。
我想在t_2 for each element in t_1
我的代码如下:
import numpy as np
t_1 = data[1][0]
t_2 = data[2][0]
sizeT2 = len(t_2)
for i in range (0,len(t_1)):
x = t_1[i]
dist = np.sqrt(((t_2 - x[:, :sizeT2])**2).sum(axis=0))
idx[i] = np.argsort(dist)
然而这个不起作用它给了我错误:invalid index to scalar variable
。我在哪里计算dist:
t_1和t_2的样本值:
t_1 = [787093248920, 788197478458, 789119542957, 790116608918, 791221791725, 792276904840, 793284327147, 794281387454, 795471722491]
t_2 = [786185938536, 786198456613, 786201269998, 786209682882, 786217046729, 786226031805, 786243417036, 786261786036, 786268379959, 786285296767, 786291818036, 786301118305, 786316936921, 786327079575, 786330177152, 786339472844, 786345463959, 786348981075, 786352899190]
答案 0 :(得分:0)
假设t_1
和t_2
为ndarray
:
t_2[np.argmin(np.abs(t_1[:, None] - t_2), axis = 1)]
你的玩具问题非常简单,因为t_1
的所有元素都大于t_2
的所有元素
array([786352899190, 786352899190, 786352899190, 786352899190,
786352899190, 786352899190, 786352899190, 786352899190, 786352899190], dtype=int64)